Azure Application Insights中AppServiceConsoleLogs日志级别均显示为Error的求助
解决Azure App Service日志到AppServiceConsoleLogs表级别错误标记问题
检查日志输出流
App Service默认将stderr流的日志标记为Error,stdout流标记为Info。如果你的应用把所有日志都输出到stderr,即便内部设置了Info级别,也会被归类为Error。需要调整应用的日志配置,确保Info级日志输出到stdout:- .NET:修改日志提供程序配置,将Info及以下级别定向到stdout;
- Python:调整logging模块的handler,让Info日志输出到
sys.stdout; - Java:检查日志框架(如Logback)的appender配置,确保Info级日志输出到标准输出流。
验证App Service日志收集配置
登录Azure门户,进入目标应用服务:- 转到「监控」->「诊断设置」,确认针对AppServiceConsoleLogs的配置中,日志级别过滤没有被强制设为Error;
- 检查「日志流」中的原始日志,确认是否存在级别标识被覆盖的情况。
排查第三方日志框架的级别映射
如果使用Serilog、NLog等框架,需确认与Application Insights集成的配置是否正确:- Serilog:确保
WriteTo.ApplicationInsights的restrictedToMinimumLevel设置为Information,且没有额外的级别转换规则; - NLog:检查
targets中Application Insights目标的logLevel配置,避免将Info级日志错误映射为Error。
- Serilog:确保
检查Application Insights SDK配置
在应用配置文件(如appsettings.json、application.properties)中,确认SDK的日志级别设置:"Logging": { "ApplicationInsights": { "LogLevel": { "Default": "Information" } } }确保此处没有将默认级别设为Error,导致所有日志被强制升级。
内容的提问来源于stack exchange,提问作者Nick Petzold
相关产品推荐
相关产品推荐

