Application Insights用于ASP.NET Core 2.0的跟踪侦听器

MPa*_*lak 8 azure-application-insights asp.net-core asp.net-core-2.0

我有一堆服务发出System.Diagnostics.Trace.*跟踪消息.当通过ASP.NET WebAPI托管时,我只需包含该Microsoft.ApplicationInsights.TraceListener软件包,并在应用程序洞察中收集服务库中的自定义跟踪.

但是,在通过ASP.NET Core 2.0 WebAPI托管服务时,我无法弄清楚如何获取这些相同的消息.我试过的......

添加应用程序见解

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddApplicationInsights(app.ApplicationServices, Microsoft.Extensions.Logging.LogLevel.Information);
     //...
    }
Run Code Online (Sandbox Code Playgroud)

在使用扩展方法添加应用程序洞察之后,我能够看到框架发出的跟踪(例如,Request Start,Request End,...),但是我的自定义跟踪消息都不存在.

添加跟踪侦听器包

我决定添加一下Microsoft.ApplicationInsights.TraceListener包,看看是否有帮助.我更新了configure方法,看起来像这样......

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddTraceSource(new System.Diagnostics.SourceSwitch("AppInsightsTraceSwitch")
        {
            Level = System.Diagnostics.SourceLevels.All
        }, new Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener());

        loggerFactory.AddApplicationInsights(app.ApplicationServices, Microsoft.Extensions.Logging.LogLevel.Information);
    }
Run Code Online (Sandbox Code Playgroud)

更新配置后,我现在看到日志中重复的跟踪消息,但仍然没有任何自定义跟踪.

这是github上问题.这是一个有问题的样本回购.

cij*_*mas 0

TraceListener 对 .Net Core 的支持现已在最新的稳定版本Microsoft.ApplicationInsights.TraceListener- 2.6.4 中提供。

https://www.nuget.org/packages/Microsoft.ApplicationInsights.TraceListener/