Отключите поставщика ведения журналов ColoredConsole из функций Azure V2 - PullRequest
1 голос
/ 10 апреля 2019

Я использую Serilog для структурированной регистрации в ядре asp.net и хотел бы использовать ту же библиотеку с функциями Azure.

Моя цель - записывать сообщения журнала в формате JSON на Console Sink через Serilog.Это работает, но Платформа Функций также пишет текстовые журналы, используя провайдера ColoredConsole.Я хочу отключить это.

Как видно из следующего кода, я попытался заменить LoggerFactory и очистить провайдеров.Это все еще не работало.

[assembly: WebJobsStartup(typeof(FuncStartup))]
namespace Function.Test
{
    public class FuncStartup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {

            var loggerConfiguration = new LoggerConfiguration()
                .Enrich.FromLogContext()
                .Enrich.WithExceptionDetails()
                .Enrich.WithEnvironmentUserName()
                .Enrich.WithMachineName()
                .Enrich.WithProcessId()
                .Enrich.WithProcessName()
                .Enrich.WithThreadId()
                .Enrich.With<ServiceVersionEnricher>()
                .WriteTo.Console(new JsonFormatter());

            Log.Logger = loggerConfiguration.CreateLogger();

            //return serviceCollection.Replace(new ServiceDescriptor(typeof(ILoggerFactory), s => new SerilogLoggerFactory(null, true), ServiceLifetime.Singleton));

            builder.Services.AddLogging(b =>
            {
                b.ClearProviders();
                b.AddSerilog(Log.Logger);
            });
        }
    }
}

Вывод:

enter image description here

...