从.net核心自定义日志记录到应用洞察

时间:2017-06-08 14:21:20

标签: c# azure .net-core

我在.net核心网络应用中使用App Insights,我可以在应用洞察日志中成功查看遥测数据。我现在希望能够推高自己的日志事件,但似乎无法使其工作(即我的自定义日志事件不会出现在应用洞察中)。我的代码如下:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddApplicationInsights(app.ApplicationServices);
    loggerFactory.AddDebug();

    var logger = loggerFactory.CreateLogger<Startup>();

    logger.LogInformation("I am a log event");

我也尝试过显式设置日志级别,如:

loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Debug);

但我从来没有在应用洞察中看到“我是一个日志事件”的文字。

有谁能告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

  1. 您需要为此添加Application Insights日志捕获模块。选择适当的包 - 以下之一:
    • Microsoft.ApplicationInsights.TraceListener(捕获 System.Diagnostics.Trace调用)
    • Microsoft.ApplicationInsights.EventSourceListener(捕获 EventSource活动)
    • Microsoft.ApplicationInsights.EtwListener(to 捕获ETW事件)
    • Microsoft.ApplicationInsights.NLogTarget
    • Microsoft.ApplicationInsights.Log4NetAppender
  2. 文档部分:Explore .NET trace logs in Application Insights

    1. ALOS,您可以直接使用TelemetryClient。它有更多选项,而不仅仅是记录器使用的TrackTrace

      // TelemetryClient telemetryClient = new Microsoft.ApplicationInsights.TelemetryClient(); ... telemetryClient.TrackEvent(&#34;&#34); telemetryClient.TrackMetric(&#34;&#34;,1); telemetryClient.TrackTrace(&#34; message&#34;,SeverityLevel.Information);

      文档部分:Application Insights API for custom events and metrics

    2. 对于实例,您可以查看feature test int ApplicationInsights-aspnetcore repo。