【问题标题】:add app insights trace logging to .net core console application将应用洞察跟踪日志记录添加到 .net 核心控制台应用程序
【发布时间】:2017-12-07 19:36:09
【问题描述】:

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

 factory.AddApplicationInsights(serviceProvider);

它抛出一个错误,说它找不到托管环境

尝试激活“Microsoft.ApplicationInsights.AspNetCore.TelemetryInitializers.AspNetCoreEnvironmentTelemetryInitializer”时,无法解析“Microsoft.AspNetCore.Hosting.IHostingEnvironment”类型的服务。

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

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

【问题讨论】:

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


【解决方案1】:
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-11-10
    • 2022-10-16
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2021-05-13
    • 2018-05-14
    • 1970-01-01
    • 2019-09-26
    相关资源
    最近更新 更多