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

ASP.NET Core 6配置Serilog将ILogger日志发送至Application Insights

解决Serilog日志无法发送到Azure Application Insights的问题

1. 确认必要NuGet包已安装

确保项目中已安装Serilog.Sinks.ApplicationInsights包,版本需与Serilog、ASP.NET Core 6兼容。使用.NET CLI安装命令:

dotnet add package Serilog.Sinks.ApplicationInsights

2. 修正ConnectionString配置

将appsettings.json中ApplicationInsights节点下的[MyCONNECTIONSTRING]替换为Azure Application Insights实例的真实连接字符串,该字符串可在Azure门户对应资源的「概述」页面获取。

3. 调整TelemetryConverter(可选)

当前配置使用TraceTelemetryConverter会将日志发送至AI的「跟踪」分类,若需将日志映射为AI标准日志(LogTelemetry),可替换为LogTelemetryConverter:

"telemetryConverter": "Serilog.Sinks.ApplicationInsights.TelemetryConverters.LogTelemetryConverter, Serilog.Sinks.ApplicationInsights"

切换后需在AI门户的「日志分析」中查询traces表查看日志内容。

4. 验证日志级别配置

确认Serilog的MinimumLevel未被其他配置覆盖,若代码或其他配置文件中设置了更高级别(如Information),会导致Debug级别的日志无法发送。可临时将Default改为Information测试是否能收到日志。

5. 排查Bootstrap配置干扰

检查Bootstrap.ConfigureServices方法中是否存在重置ILoggerFactory或修改日志服务的代码,例如调用services.AddLogging()并替换默认日志提供程序,这类操作可能影响Serilog的日志发送逻辑。

6. 启用Serilog内部调试(排查用)

若以上步骤无效,可启用Serilog内部调试日志,查看是否有发送失败的错误提示:
修改Program.cs中的BootstrapLogger配置:

var _logger = new LoggerConfiguration()
    .WriteTo.Console()
    .CreateBootstrapLogger();

运行项目后查看控制台输出,确认是否存在Application Insights sink相关的连接失败、权限不足等错误信息。

7. 检查网络与权限

确保应用运行环境可正常访问Azure服务:本地开发需网络通畅;部署在Azure服务(如App Service)时,确认服务计划无防火墙或网络策略阻止请求,且具备访问Application Insights的权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:09:29