我有一个 ASP.NET Core 5 应用程序。我看不到自定义跟踪,但可以看到指标和依赖项。我以为这是 LogLevel 的问题,但似乎我找不到正确的设置:
启动.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddApplicationInsightsTelemetry(Configuration["ApplicationInsights:ConnectionString"]);
}
应用程序设置.json
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ApplicationInsights": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Information"
},
"ConnectionString": "InstrumentationKey=*****;IngestionEndpoint=https://westeurope-5.in.applicationinsights.azure.com/"
},
代码:
public async Task SendMessageAsync()
{
...
using (this._logger.BeginScope(nameof(SendMessageAsync)))
{
...
_logger.LogInformation($"Message sent...");
...
}
}
在 VS 输出中,我看到正在记录信息消息,但没有看到 LogInformation 的 AppInsights 遥测。
SenderApp.Controllers.HomeController: Information: Message sent...
Application Insights Telemetry: {"name":"AppDependencies","time":...
Application Insights Telemetry: {"name":"AppDependencies","time":...
答案很简单,但是不容易调试。
appsettings.josn
中的 AppInsights 日志记录设置应位于 Logging
下
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Information",
"Microsoft.Hosting.Lifetime": "Information"
},
"ApplicationInsights": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Information"
}
}
},
"ApplicationInsights": {
"ConnectionString": "InstrumentationKey=*****;IngestionEndpoint=https://westeurope-5.in.applicationinsights.azure.com/"
}