Можно ли установить специфицированный форматер c для ILoggerProvider, завернутого в serilog? - PullRequest
1 голос
/ 30 апреля 2020

Я следовал инструкциям 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() настраивает ведение журнала на azure хранилище BLOB-объектов с BlobLoggerProvider, serilog может использовать этот провайдер и записывать в хранилище BLOB-объектов.

Я хотел бы изменить форматер для BlobLoggerProvider на CompactJsonFormatter, но не могу понять, как. Можно ли установить указанный c форматер для ILoggerProvider, завернутого в serilog?

...