c# - 从 .net core 自定义日志记录到应用程序见解

标签 c# azure .net-core

我在 .net core Web 应用中使用 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. 您需要为此添加 Application Insights 日志捕获模块。选择适当的包 - 以下之一:
    • Microsoft.ApplicationInsights.TraceListener(捕获 System.Diagnostics.Trace 调用)
    • Microsoft.ApplicationInsights.EventSourceListener(用于捕获 EventSource 事件)
    • Microsoft.ApplicationInsights.EtwListener(至 捕获 ETW 事件)
    • Microsoft.ApplicationInsights.NLogTarget
    • Microsoft.ApplicationInsights.Log4NetAppender

文档部分:Explore .NET trace logs in Application Insights

  • 此外,您还可以直接使用 TelemetryClient。它有更多选项,而不仅仅是记录器使用的 TrackTrace
  • //TelemetryClient telemetryClient = new Microsoft.ApplicationInsights.TelemetryClient();
    ...
    telemetryClient.TrackEvent("<EventName>");
    telemetryClient.TrackMetric("<metric name>", 1);
    telemetryClient.TrackTrace("message", SeverityLevel.Information);
    

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

    对于现场示例,您可以查看 feature test int ApplicationInsights-aspnetcore 存储库。

    关于c# - 从 .net core 自定义日志记录到应用程序见解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438334/

    相关文章:

    c# - Windows7 中的 CefSharp 问题

    c# - 从 C# 访问样式资源 - Xamarin.Forms

    c# - 如何知道 Process.Start() 是否成功?

    azure - 是否可以查看 Azure 警报的源代码历史记录?

    visual-studio-2010 - 使用 Azure 辅助角色进行配置文件转换

    amazon-web-services - 为什么我的 lambda 无法与 elasticache 通信?

    f# - 如何在F#交互中使用Span?

    c# - 如何使用 LINQQ 或任何其他方法更新数据表中所有行的第一列?

    java - 微软 Azure 和 Glassfish

    c# - .net core 1.0.0 与 Entity Framework 核心 sqlite