添加应用程序洞察跟踪记录到.net核心控制台应用程序

时间:2017-07-04 10:57:04

标签: .net-core azure-application-insights

我有一个.net核心控制台应用程序(不是AspNetCore),我想添加应用程序洞察记录,将跟踪日志推送到应用程序洞察。我尝试过使用Microsoft.ApplicationInsights.AspNetCore,但是当我这样做时:

 factory.AddApplicationInsights(serviceProvider);

它会抛出错误,说它无法找到托管环境

  

无法解析类型' Microsoft.AspNetCore.Hosting.IHostingEnvironment'尝试激活' Microsoft.ApplicationInsights.AspNetCore.TelemetryInitializers.AspNetCoreEnvironmentTelemetryInitializer'。

大概是因为这不是AspNetCore应用程序,而只是一个纯粹的控制台应用程序。

有没有办法可以从我的.net核心控制台应用程序中将跟踪日志记录推送到App Insights?

2 个答案:

答案 0 :(得分:3)

实际上,遇到同样的问题并最终解决了它在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");

答案 1 :(得分:1)