将 serilog 与 azure 应用程序洞察和 .Net 核心结合使用

Bun*_*ary 2 c# azure serilog azure-application-insights asp.net-core

目前,我正在直接使用 azure 应用程序洞察进行日志记录,如此链接 使用最新版本的 Application Insight 和 .net 核心 API ,一切正常。

但是我现在需要借助 azure 应用程序洞察来使用 serilog 进行日志记录。甚至我也做了一些关于 serilog 的研发(https://github.com/serilog/serilog-sinks-applicationinsights)。但没有任何想法。您能否建议我如何使用 .Net core 3.0 实现这一目标

Iva*_*ang 8

请按照以下步骤操作:

首先,安装以下包:

Microsoft.ApplicationInsights.AspNetCore,版本 2.14.0

Serilog.AspNetCore,版本 3.2.0

Serilog.Sinks.ApplicationInsights,版本 3.1.0

Serilog.Settings.Configuration,版本 3.1.0

在 Program.cs 中:

public class Program
{     
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
           .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
                    .ReadFrom.Configuration(hostingContext.Configuration)
                    .WriteTo.ApplicationInsights(new TelemetryConfiguration{ InstrumentationKey = "xxxxxxxxx" },TelemetryConverter.Traces)
             );                
}
Run Code Online (Sandbox Code Playgroud)

在 controller.cs 中

在此处输入图片说明

测试结果

在此处输入图片说明

  • 我认为您忘记添加 appsettings.json 如何查找 serilog (6认同)
  • 仪器密钥从哪里来? (2认同)