2017-07-04 3 views
1

私はコアのコンソールアプリケーション(AspNetCoreではなく)を持っています。アプリの洞察のログを追加してトレースログをアプリの洞察力に押し込めます。私はMicrosoft.ApplicationInsights.AspNetCoreを使用して試してみましたが、私はやるとき:アプリケーションの洞察力を追加する.netコアコンソールアプリケーションにログを記録

factory.AddApplicationInsights(serviceProvider); 

それはタイプ「マイクロソフトのためのサービスを解決できませんホスティング環境

を見つけることができないというエラーがスローされます。 「Microsoft.ApplicationInsights.AspNetCore.TelemetryInitializers.AspNetCoreEnvironmentTelemetryInitializer」をアクティブ化しようとしているときに、AspNetCore.Hosting.IHostingEnvironmentが発生しました。

おそらく、これはAspNetCoreアプリではなく純粋なコンソールアプリだからです。

私の.netコアコンソールアプリ内からApp Insightにプッシュされたトレースログを取得する方法はありますか?

+1

使用Microsoft.ApplicationInsights:トリックは、コンソールアプリケーションのためのこのようなものを動作させるために、手動でコンテナにTelemetryClientを登録しなければならなかったということです/Getting-Started-for-a-.NET-Core-console-application。 –

+1

おかげさまで、カスタムロガーを作成してから、そのロガーで基礎となるApp Insights APIを呼び出す必要があるようです。必要に応じて私ができることはありますが、すでに利用可能と考えていました。 – Slicc

答えて

1

実際には、同じ問題に直面し、最終的にはAddApplicationInsightsソースコード内を見て解決しました。 https://github.com/Microsoft/ApplicationInsights-aspnetcore/wikiで説明したように

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"); 
関連する問題