Действия по воспроизведению:
private readonly ILogger<ValuesController> _logger;
public ValuesController(ILogger<ValuesController> logger)
{
_logger = logger;
}
// GET api/values
[HttpGet]
public IEnumerable<string> Get()
{
_logger.LogDebug("This is a DEBUG comment");
return new string[] { "value1", "value2" };
}
Здесь я вижу 2 возможных решения:
a) Измените appsetings.json на раздел Logging вместо Lambda.Logging
б) Измените этот файл aws-lambda-dotnet / blob / master / Libraries / src / Amazon.Lambda.AspNetCoreServer / AbstractAspNetCoreFunction.cs Строка 179, чтобы не включать раздел «Ведение журнала».
Я собираюсь начать работу над воспроизведением этого сейчас. Какое исключение / проблему вы наблюдаете?
Я ожидал, что «Это комментарий DEBUG» появится в журналах отладки (консольное приложение и CloudWatch). Ни один из них не появляется.
Привет @matheusmaximo , я не уверен, почему журналы отладки не работают, но это может быть связано с https://github.com/aws/aws-logging-dotnet/issues/52. Что касается вас, по крайней мере, вы уже используете правильную библиотеку ведения журналов Amazon.Lambda.Logging.AspNetCore, если вы используете бессерверный API Blueprint. Я не думаю, что рекомендуемые вами решения подходят. Если вы попытаетесь создать несколько журналов с другими уровнями журналов, которые должны работать, вы увидите, что настройка уровней журналов в appsettings.json правильно отфильтрует низкие уровни журналов.
Я поговорю с @normj, чтобы узнать больше о сложностях с журналами отладки.
Похоже, у нас есть ошибка в Amazon.Lambda.AspNetCoreServer, которая не загружает уровни журнала в ILoggingBuilder. Я выясню, почему это происходит.
Вы можете изменить минимум кода, отредактировав класс, который расширяется от APIGatewayProxyFunction
который обычно равен LambdaEntryPoint
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Logging;
namespace LambdaLoggingDebugTest
{
public class LambdaEntryPoint : Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction
{
protected override void Init(IWebHostBuilder builder)
{
builder
.UseStartup<Startup>()
.ConfigureLogging((hostingContext, logging) =>
{
logging.SetMinimumLevel(LogLevel.Trace);
});
}
}
}
Я обнаружил проблему в библиотеке, из-за которой параметры ведения журнала неправильно считываются из appsettings.json https://github.com/aws/aws-lambda-dotnet/commit/0d3cdb39d3c72d45956ebc2f2e6612c3fde277cd
Я скоро исправлю.
Я только что выпустил версию 3.0.2 Amazon.Lambda.AspNetCoreServer, в которой исправлена ошибка, из-за которой ведение журнала не читается из конфигурации.
Я подтверждаю, что это устранило проблему. Спасибо вам всем!