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

使用Serilog Application Insights接收器与SDK时出现重复追踪问题

解决Serilog与Application Insights SDK的重复追踪问题

问题原因

  • UseSerilog配置中writeToProviders: true会让Serilog将日志转发至.NET默认日志提供器,而AddApplicationInsightsTelemetry已注册Application Insights的日志提供器,导致同一日志被Serilog接收器和AI SDK各发送一次。
  • Serilog使用EventTelemetryConverter将日志转为AI自定义事件,AI SDK默认收集日志为TraceTelemetry,两者产生重复追踪条目。

解决方案

方案1:关闭Serilog到默认提供器的转发

修改Program.cs中的Serilog初始化代码,将writeToProviders设为false,让Serilog仅通过自身的Application Insights接收器发送日志:

.UseSerilog((hostingContext, services, loggerConfiguration) =>
{
    loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration);
}, writeToProviders: false)

方案2:调整遥测收集策略(按需选择)

选项A:修改Serilog的遥测转换类型

将Serilog的日志转为TraceTelemetry,与AI SDK默认收集类型保持一致,避免事件类型重复:
修改appsettings.json中的telemetryConverter:

"telemetryConverter": "Serilog.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights"
选项B:关闭AI SDK的日志遥测收集

保留Serilog的EventTelemetry输出,同时让AI SDK停止收集日志类遥测,修改Startup.cs的配置:

services.AddApplicationInsightsTelemetry(o =>
{
    o.EnableAdaptiveSampling = false;
    o.EnableLoggerTelemetry = false; // 禁用SDK的日志遥测收集
});

验证

修改配置后重启应用,查看Application Insights中的追踪数据,确认重复条目已消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:25:15