Я использую 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);
});
}
}
}
Вывод: