.NET 8 Azure函数无法在Application Insights中查看Info和Trace日志
解决方案
1. 补全host.json的日志级别配置
你的host.json缺少日志级别规则,默认情况下Application Insights仅收集Warning及以上级别的日志。需要添加logLevel节点明确指定要收集的日志范围:
修改后的完整配置:
{ "version": "2.0", "logging": { "logLevel": { "default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" }, "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" }, "enableLiveMetricsFilters": true } } }
如果需要收集Trace级别日志,只需将"default"的值改为"Trace"即可。
2. 排查采样配置影响
当前采样设置处于启用状态,测试阶段可以暂时关闭采样,确认日志是否能正常上报:
"samplingSettings": { "isEnabled": false }
确认正常后再重新开启采样,避免日志量过高。
3. 核对NuGet包版本
确保Microsoft.Azure.Functions.Worker.ApplicationInsights和Microsoft.Azure.Functions.Worker.Sdk使用最新稳定版,旧版本可能存在.NET 8 Worker模式下的日志级别适配问题。
4. 分步验证日志流
- 先在Azure门户的函数应用日志中查看是否有Info/Trace日志,如果存在,说明是Application Insights的转发配置问题;如果不存在,则是函数应用本身的日志输出配置未生效。
很多开发者都遇到过这个问题,核心原因是.NET Isolated模式(Worker模式)的Azure函数日志规则和传统In-Process模式不同,必须在host.json中显式定义日志级别,否则默认只保留Warning及以上等级的日志。
内容的提问来源于stack exchange,提问作者user23124805
相关产品推荐
相关产品推荐

