.NET Core 3.1 Function App集成App Insights无法上报信息日志问题求助
解决步骤
1. 移除Startup.cs中重复的Application Insights注册
你遇到的EventSource实例已存在的报错,核心原因是Azure Functions运行时已经自动初始化了Application Insights服务,不需要手动调用AddApplicationInsightsTelemetry方法注册,重复注册会导致实例冲突。修改后的Configure方法如下:
public override void Configure(IFunctionsHostBuilder builder) { // 移除原有的AddLogging和AddApplicationInsightsTelemetry两行代码 // 其他自定义服务注册逻辑可正常保留 }
如果本地调试也需要上报日志到Application Insights,只需在local.settings.json的Values节点下添加APPINSIGHTS_INSTRUMENTATIONKEY配置,值为你的Instrumentation Key即可,无需额外代码处理。
2. 补全host.json中的日志级别配置
你当前的host.json仅配置了采样规则,没有指定日志收集的最低级别,默认状态下Function相关的Information级别日志会被过滤。修改host.json的logging节点,补充logLevel配置:
{ "version": "2.0", "logging": { "logLevel": { "default": "Information", "Function": "Information", "Host.Aggregator": "Trace", "Host.Results": "Error" }, "applicationInsights": { "samplingExcludedTypes": "Request", "samplingSettings": { "isEnabled": false } } } }
注意:local.settings.json中的logging配置仅本地调试生效,部署到Azure云端后以host.json的配置为准。
3. 验证配置生效
修改完成后重新发布Function,触发运行后稍等1-2分钟,即可在Application Insights的traces表中查看到LogInformation输出的日志。
内容的提问来源于stack exchange,提问作者winterishere
相关产品推荐
相关产品推荐

