Azure应用服务日志流未捕获ASP.NET应用日志问题排查
缺失的配置及解决步骤
以下是导致Log Stream无法显示代码日志的关键缺失配置:
添加日志过滤规则,确保Verbose级别日志能输出
默认情况下,ASP.NET Core的日志过滤机制可能限制低级别日志(如Verbose、Debug)的输出。需要明确配置AzureWebAppDiagnostics的日志过滤规则,或在appsettings.json中设置全局日志级别:代码方式配置过滤:
builder.Logging.AddAzureWebAppDiagnostics() .AddFilter<AzureWebAppDiagnosticsLoggerProvider>("*", LogLevel.Verbose);或在
appsettings.json中添加:"Logging": { "LogLevel": { "Default": "Verbose", "Microsoft.AspNetCore": "Verbose" }, "AzureWebAppDiagnostics": { "LogLevel": { "Default": "Verbose" } } }在启动流程中尽早使用ILogger输出日志
确保在Program.cs的启动代码中,尽早获取并使用ILogger实例记录启动日志,避免因启动失败导致日志未被写入。示例:var logger = builder.Services.BuildServiceProvider().GetRequiredService<ILogger<Program>>(); logger.LogVerbose("应用启动开始..."); // 后续启动代码 var app = builder.Build(); logger.LogVerbose("应用构建完成,开始配置中间件...");确认Log Stream的来源选择正确
在App Service的Log Stream界面中,顶部下拉菜单需选择Application Logs (Filesystem),而非Web Server Logs或其他来源,否则无法看到代码中通过ILogger输出的日志。
内容的提问来源于stack exchange,提问作者Jonas Rembratt
相关产品推荐
相关产品推荐

