将 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中:
测试结果:
目前,我直接使用 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中:
测试结果: