Sli*_*icc 3 azure-application-insights .net-core
我有一个 .net 核心控制台应用程序(不是 AspNetCore),我想添加应用洞察日志记录,将跟踪日志推送到应用洞察。我曾尝试使用 Microsoft.ApplicationInsights.AspNetCore,但是当我这样做时:
factory.AddApplicationInsights(serviceProvider);
Run Code Online (Sandbox Code Playgroud)
它抛出一个错误,说它找不到托管环境
尝试激活“Microsoft.ApplicationInsights.AspNetCore.TelemetryInitializers.AspNetCoreEnvironmentTelemetryInitializer”时无法解析“Microsoft.AspNetCore.Hosting.IHostingEnvironment”类型的服务。
大概是因为这不是 AspNetCore 应用程序,而只是一个纯粹的控制台应用程序。
有没有一种方法可以将跟踪日志记录从我的 .net 核心控制台应用程序中推送到 App Insights?
小智 5
实际上,遇到了同样的问题,最终在 AddApplicationInsights 源代码中解决了它。诀窍是您必须手动将 TelemetryClient 注册到容器才能使这些东西适用于控制台应用程序:
var telemetryClient = new TelemetryClient(new TelemetryConfiguration()
{
InstrumentationKey = config.GetValue("ApplicationInsights:InstrumentationKey")
});
services.AddSingleton(x => telemetryClient);
var provider = services.BuildServiceProvider();
loggerFactory.AddApplicationInsights(provider, LogLevel.Information);
var logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Test");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2995 次 |
| 最近记录: |