ILogger 日志记录未显示在 Azure Application Insights 中

ILogger Logging Doesn't Show Up in Azure Application Insights

我正在设置一个新的 Web 应用程序以通过 Application Insights 进行登录。我已经安装了 AI,并且看到了所有预期的遥测数据(服务器请求、失败的请求等),但没有看到通过 ILogger 发送的日志记录。我已经查看了所有可以在 SO 上找到的类似问题,但是 none 解决了我的问题。

我正在使用 .NET 5 和 Microsoft.ApplicationInsights.AspNetCore nuget 包的 2.17.0 版(最新稳定版)。连接字符串和检测密钥显示正确。我试过在 TelemetryConfiguration 中打开开发者模式。我正在尝试每个级别的日志,我的代码在功能上与我找到的所有示例相同。

启动。cs/ConfigureServices:

控制器:

我将 ApplicationInsights 的默认 LogLevel 设置为“Trace”:

VS 中的输出 window 显示,当我登录时,正在发送跟踪遥测数据:

但是我在 Application Insights 中没有看到任何日志记录!我完全被难住了。解决此问题的任何帮助将不胜感激。谢谢!

由于您在使用 VisualStudio 进行调试时看到了数据,但在实际的 ApplicationInsights 门户中没有看到任何数据,因此我建议检查检测密钥。看起来您正在将 ConnectionString 传递给 service.AddApplicationInsights() 调用,这是不正确的。该方法单独使用检测密钥。如果您打算传递连接字符串,请按以下方式进行:

public void ConfigureServices(IServiceCollection services)
{
    var options = new ApplicationInsightsServiceOptions { ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;" };
    services.AddApplicationInsightsTelemetry(options: options);
}

因此,事实证明这是 Application Insights 仪表板内的配置问题。数据采样设置为 0%,因此没有任何内容进入日志。为了解决这个问题,我去了

配置 -> 使用和估计成本 -> 数据采样

并将其更改为 100%。