【发布时间】:2020-04-30 08:51:39
【问题描述】:
我已按照https://github.com/serilog/serilog-aspnetcore 的说明进行操作,并拥有以下代码:
public class Program
{
static readonly LoggerProviderCollection Providers = new LoggerProviderCollection();
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console(new CompactJsonFormatter())
.WriteTo.Providers(Providers)
.CreateLogger();
try
{
Log.Information("Starting web host");
CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddAzureWebAppDiagnostics();
})
.UseSerilog(providers: Providers)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
logging.AddAzureWebAppDiagnostics() 使用BlobLoggerProvider 将日志记录配置到 azure blob 存储,serilog 能够使用此提供程序并写入 blob 存储。
我想将BlobLoggerProvider 的格式化程序更改为CompactJsonFormatter,但我不知道怎么做。是否可以为 serilog 包装的 ILoggerProvider 设置特定的格式化程序?
【问题讨论】:
标签: asp.net-core serilog