Это, вероятно, повторение Как настроить, чтобы Steeltoe Dynamic Logging работала со сторонними регистраторами как Serilog? .Я хотел бы использовать конфигурацию динамического ведения журнала Steeltoe (Поможет мне динамически настраивать уровни ведения журнала без повторного развертывания) и хотел бы сделать свои операторы ведения журнала более структурированными.Поэтому я решил взглянуть на Serilog.Вот мой код
public class Program
{
/// <summary>
/// Application entry point.
/// </summary>
/// <param name="args">arguments.</param>
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
/// <summary>
///
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureAppConfiguration((hostContext, config) =>
{
config.AddCloudFoundry();
})
.ConfigureLogging((context, builder) =>
{
// We need to clear providers which are added by CreateDefaultBuilder().
// Please refer https://github.com/aspnet/Logging/issues/648. Otherwise log entries will be duplicated
// since AddDynamicConsole again add console logger
builder.ClearProviders();
if (context.HostingEnvironment.IsDevelopment())
{
builder.AddDebug();
}
builder.AddDynamicConsole();
})
.UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
.ReadFrom.Configuration(hostingContext.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate:
"[{Level:u3}] [{Properties}] {Message}{NewLine}{Exception}")
.WriteTo.Trace())
.Build();
}
Но это не работает, как ожидалось.В диспетчере приложений PCF я не вижу ни одного поставщика журналов, кроме «По умолчанию».Если я раскомментирую
UseSerilog ()
, они тоже вернутся.Кстати, я не хочу ограничивать себя Serilog, и возможно ли это с NLog (слышал, что он также поддерживает структурированное ведение журнала)?Или любые другие идеи объединить структурированное ведение журнала и конфигурацию динамического ведения журнала приветствуются