You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6 Web API写入Azure Application Insights日志不全求助

解决Application Insights无法捕获全部日志的问题

核心:配置Application Insights专属日志级别

默认情况下,Application Insights的日志收集器会单独应用过滤规则,即便全局默认日志级别设为Trace,也需要单独为AI配置日志级别才能捕获低级别日志:

修改appsettings.json的Logging节点,添加ApplicationInsights专属的日志级别配置:

"Logging": {
  "LogLevel": {
    "Default": "Trace",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Information"
  },
  "ApplicationInsights": {
    "LogLevel": {
      "Default": "Trace" // 覆盖AI默认过滤规则,允许所有级别日志上传
    }
  }
}

移除重复的日志注册配置

无需同时调用builder.Services.AddApplicationInsightsTelemetry();和builder.Services.AddLogging(builder => { builder.AddApplicationInsights(); });——前者已经集成了日志收集功能,重复注册可能引发配置冲突,保留AddApplicationInsightsTelemetry()即可。

检查命名空间级别的日志限制

确认你的控制器/服务所在命名空间未被单独设置高日志级别。比如以下配置会限制该命名空间下仅输出Warning及以上级别的日志:

"Logging": {
  "LogLevel": {
    "YourProjectNamespace.Controllers": "Warning"
  }
}

将对应命名空间的日志级别改为Trace或Debug即可解除限制。

验证本地日志输出

先确认日志本身已正常生成:在appsettings.json中添加Console日志配置,运行项目调用接口后查看控制台,确认所有Vivek开头的日志都能输出:

"Logging": {
  "Console": {
    "LogLevel": {
      "Default": "Trace"
    }
  },
  // 其他配置...
}

如果控制台能看到全部日志,但AI中看不到,再检查AI连接字符串是否正确,以及本地环境是否能正常访问Azure服务。

排查自定义TelemetryProcessor过滤逻辑

如果你添加了自定义的TelemetryProcessor,检查其中是否有过滤Trace/Debug/Information级别的代码,确保这类日志能被正常提交到Application Insights。

完成以上配置后,重启项目并调用接口,等待数分钟(AI日志存在一定延迟),再执行Kusto查询traces | where message contains "Vivek"即可看到全部级别的日志。

内容的提问来源于stack exchange,提问作者Vivek Nuna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:32:20