在ASP.NET Core应用程序中,如果同时使用AppInsights遥测和SeriLog日志记录,会出现遥测数据丢失的问题。这是因为SeriLog会重定向日志消息到控制台而不是AppInsights,从而导致AppInsights无法捕获这些消息。
解决这个问题有两种方法:
示例代码:
services.AddLogging(builder =>
{
builder.AddApplicationInsights(appInsightsOptions =>
{
appInsightsOptions.InstrumentationKey = "YOUR_APPINSIGHTS_KEY";
});
builder.AddFilter("", LogLevel.Information);
builder.AddFilter("", LogLevel.Warning);
});
示例代码:
//使用AppInsights适配器作为日志记录器
services.AddLogging(builder => builder.AddApplicationInsights("YOUR_APPINSIGHTS_KEY"));
//使用SeriLog作为ILogger实现
services.AddLogging(builder =>
{
builder.Services.AddSingleton();
builder.AddFilter("", LogLevel.Information);
});