如何使用 Azure App Insights 替换现有的 serilog 实现

问题描述

我有一个现有的 asp.net Web api 项目。该项目使用 Serilog 进行日志记录。使用 OwinStartup 它像这样配置 Serilog

var logger = new LoggerConfiguration()
            .ReadFrom.AppSettings()
            .CreateLogger();

        logger.@R_213_4045@ion("Api Startup");

AppSettings 有很多设置。

实例也是这样注册

        builder.RegisterInstance(logger).As<ILogger>().SingleInstance().PropertiesAutowired();

我有一种方法可以用应用洞察替换这个 serilog 实现,或者以某种方式一起使用它,这样所有日志都进入应用洞察中,而不是现在配置的文件系统中。

解决方法

只需使用包 Serilog.Sinks.ApplicationInsights 并将 AppInsights 添加为 Serilog 的接收器

var log = new LoggerConfiguration()
    .WriteTo
    .ApplicationInsights(TelemetryConfiguration.Active,TelemetryConverter.Traces)
    .CreateLogger();

https://github.com/serilog/serilog-sinks-applicationinsights