我有一个.net核心控制台应用程序(不是AspNetCore),我想添加应用程序洞察记录,将跟踪日志推送到应用程序洞察。我尝试过使用Microsoft.ApplicationInsights.AspNetCore,但是当我这样做时:
factory.AddApplicationInsights(serviceProvider);
它抛出一个错误,说它无法找到托管环境
尝试激活“Microsoft.ApplicationInsights.AspNetCore.TelemetryInitializers.AspNetCoreEnvironmentTelemetryInitializer”时,无法解析“Microsoft.AspNetCore.Hosting.IHostingEnvironment”类型的服务。
大概是因为这不是一个AspNetCore应用程序,而只是一个纯粹的控制台应用程序。
有没有办法可以从我的.net核心控制台应用程序中将跟踪日志记录推送到App Insights?
使用https://github.com/Microsoft/ApplicationInsights-aspnetcore/wiki/Getting-Started-for-a-.NET-Core-console-application中描述的Microsoft.ApplicationInsights。
实际上,遇到同样的问题并最终解决了它在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");