Passos para reproduzir:
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" };
}
Posso ver 2 soluções possíveis aqui:
a) Emendar appsetings.json para a seção Logging em vez de Lambda.Logging
b) Corrija este arquivo aws-lambda-dotnet / blob / master / Libraries / src / Amazon.Lambda.AspNetCoreServer / AbstractAspNetCoreFunction.cs Linha 179 para não incluir a seção "Logging"
Vou começar a trabalhar na reprodução disso agora. Qual é a exceção / problema que você está vendo?
Eu esperava que "Este é um comentário DEBUG" apareça nos logs de depuração (aplicativo de console e CloudWatch). Eles não estão aparecendo nem um.
Olá @matheusmaximo , Não sei por que os logs de depuração não funcionam, mas pode estar relacionado a https://github.com/aws/aws-logging-dotnet/issues/52. Para você, pelo menos você já está usando a biblioteca de log Amazon.Lambda.Logging.AspNetCore correta se estiver usando o Serverless API Blueprint. Não acho que as soluções que você recomendou sejam adequadas. Se você tentar criar alguns logs com outros níveis de log, o que deve funcionar, você verá que ajustar os níveis de log no appsettings.json filtrará corretamente os níveis de log baixos.
Vou falar com @normj para saber mais sobre as complicações com logs de depuração.
Parece que temos um bug no Amazon.Lambda.AspNetCoreServer que não está puxando os níveis de log para o ILoggingBuilder. Vou investigar por que isso está acontecendo.
Você pode alterar o mínimo no código editando a classe que se estende de APIGatewayProxyFunction
que geralmente é 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);
});
}
}
}
Encontrei o problema na biblioteca que faz com que as configurações de registro não sejam lidas corretamente em appsettings.json https://github.com/aws/aws-lambda-dotnet/commit/0d3cdb39d3c72d45956ebc2f2e6612c3fde277cd
Vou resolver logo.
Acabei de lançar a versão 3.0.2 do Amazon.Lambda.AspNetCoreServer que corrige o bug com o registro não sendo lido da configuração.
Eu confirmo que isso resolveu o problema. Obrigado a todos!