.NET6中Application Insights未捕获ILogger日志问题求助
.NET6下Application Insights无法捕获ILogger日志的问题
我们刚升级到.NET6,遇到Application Insights资源无法显示任何通过ILogger发送的数据的问题。目前App Insights能正常捕获崩溃、请求、依赖项等数据,但ILogger输出的日志完全没有出现在资源中。尝试查找相关解决方案,但多数内容要么不适用于.NET6,要么没有明确可行的步骤,官方文档也似乎未针对.NET6做完整更新。
当前配置与现象
项目启动代码
var builder = WebApplication.CreateBuilder(args); builder.Services.AddTransient<ISomeService, SomeService>(); builder.Services.AddApplicationInsightsTelemetry(); builder.Services.AddLogging(); builder.Services.AddControllers(); var app = builder.Build(); app.MapControllers(); app.Run();
注:未手动指定Azure连接字符串,但App Insights能捕获请求和崩溃数据,说明连接配置正常,且已在App Service门户完成相关参数配置。
控制器业务代码
[ApiController] [Route("[controller]")] public class SomeProcessController : ControllerBase { private readonly ISomeService someService; private readonly ILogger<SomeProcessController> logger; public SomeProcessController( ISomeService someService, ILogger<SomeProcessController> logger) { this.someService= someService; this.logger = logger; } public async Task<ActionResult<bool>> SomeProcess() { try { logger.LogInformation("Start"); var result = await someService.DoSomethingAsync(CancellationToken.None); logger.LogInformation("Finish"); return result; } catch (Exception ex) { logger.LogCritical(ex, "Error while processing"); throw; } } }
异常测试场景
修改代码人为抛出异常:
try { logger.LogInformation("Start"); throw new Exception("TEST - CRASH!"); var result = await someService.DoSomethingAsync(CancellationToken.None); logger.LogInformation("Finish"); return result; } catch (Exception ex) { logger.LogCritical(ex, "Error while processing"); throw; }
测试结果:App Insights中能找到TEST - CRASH!的异常条目,但看不到catch块中的Error while processing日志,正常流程中的Start和Finish日志也完全缺失。
appSettings.json配置
{ "APPLICATIONINSIGHTS_CONNECTION_STRING": "****", "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "ConnectionStrings": { "default": "****" } }
待解决的问题
- 主问题:当前配置缺少什么环节,导致Application Insights无法捕获ILogger日志?
- 次要问题:如何通过Azure App Service门户的设置,覆盖项目中的日志配置?
- 第三问题:为何遇到Application Insights相关问题时,用户很难找到明确可行的解决方案?官方文档对.NET6的适配似乎不够及时。
内容的提问来源于stack exchange,提问作者zameb
相关产品推荐
相关产品推荐

