将 serilog 与 azure application insights 和 .Net core 结合使用

Using serilog with azure application insights and .Net core

目前,我直接使用 azure application insights 进行日志记录 link 一切正常。

但我现在需要在 azure application insight 的帮助下使用 serilog 进行日志记录。甚至我也做了一些关于 serilog (https://github.com/serilog/serilog-sinks-applicationinsights) 的研发。但是没有任何想法。您能否建议我如何使用 .Net core 3.0

来实现这一点?

请按照以下步骤操作:

首先,安装以下软件包:

Microsoft.ApplicationInsights.AspNetCore, version 2.14.0

Serilog.AspNetCore, version 3.2.0

Serilog.Sinks.ApplicationInsights, version 3.1.0

Serilog.Settings.Configuration, version 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)
             );                
}

在controller.cs中:

测试结果: