0

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

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

启动.cs/ConfigureServices: 在此处输入图像描述

控制器: 在此处输入图像描述 在此处输入图像描述

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

在此处输入图像描述

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

显示 AppTraces 遥测的 VS 输出窗口

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

4

2 回答 2

1

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

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

并将其更改为 100%。

于 2021-07-23T20:38:07.550 回答
-1

由于您在使用 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);
}
于 2021-07-19T16:11:06.703 回答