【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题

问题描述

在.Net Core 5.0 项目中,添加 Microsoft.Extensions.Logging.AzureAppServices 和 Microsoft.Extensions.Logging.Abstractions插件,并且在项目中添加  logging.AddAzureWebAppDiagnostics()

并且初始化 var _logger = LoggerFactory.Create(builder => builder.AddConsole()).CreateLogger<Program>(); 对象。全部代码为:

在本地通过dotnet run测试发现,访问 http://localhost:5000/ 和 http://localhost:5000/exception 就可以看见在代码中的加入的日志信息:

但是把代码发布到Azure App Service后,通过Log Stream发现,确没有观察到 _logger 日志:

_logger.LogInformation(“TEST THE SELF LOG INFORMATION…”);

_logger.LogError(“TEST THE SELF LOG ERROR…”);

_logger.LogDebug(“TEST THE SELF LOG Debug…”);

_logger.LogTrace(“TEST THE SELF LOG Trace…”);

_logger.LogWarning(“TEST THE SELF LOG Warning…”);

问题解决

这是因为App Service没有启用App Service Logs. 当在门户上启用后,在此查看Log Stream文件信息,就可以看见和本地同样的日志信息:

参考资料

为 Azure 应用服务配置 ASP.NET 应用: https://docs.azure.cn/zh-cn/app-service/configure-language-dotnet-framework#access-diagnostic-logs
‘ILoggerFactory’ does not contain a definition for ‘AddConsole’: https://stackoverflow.com/questions/58259520/iloggerfactory-does-not-contain-a-definition-for-addconsole

var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());

相关文章