Как настроить Steeltoe Dynamic Logging на сторонние регистраторы под Serilog? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть приложение ASP.NET Core 2.1 в Pivotal Cloud Foundry, где мы хотим иметь возможность настраивать уровни ведения журнала на лету.В качестве поставщика логгеров мы используем Serilog.Возможно ли, что Steeltoe Dynamic Logging правильно работает со сторонними регистраторами и как?

Вот что я попробовал:

В Program.cs:

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseCloudFoundryHosting()
            .ConfigureLogging((builderContext, loggingBuilder) =>
             {
                 loggingBuilder.AddDynamicConsole();
             })
            .UseSerilog((hostingContext, loggerConfiguration) => loggerConfiguration
                        .ReadFrom.Configuration(hostingContext.Configuration))
            .UseStartup<Startup>();

В настройках приложений.json

"Serilog": {
"WriteTo": [
  {
    "Name": "Console",
    "Args": {
      "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext}: {Properties} {NewLine} {EventId} {Message:lj}{NewLine}{Exception}"
    }
  }
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]

}

В appsettings.Development.json:

 "Logging": {
"LogLevel": {
  "Default": "Debug"
  }
}

И я получаю только это в Настроить уровни ведения журнала: Настроить уровни ведения журналаснимок экрана

Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018

Полагаю, вы могли бы попытаться использовать LoggerFactory вместо LoggingProvider, чтобы параллельно иметь более одного доступного провайдера журналирования, чтобы Steeltoe все еще мог обернуть ConsoleLoggerProvider, пока ваш Serilog продолжает работать, как ожидалось ...

Почему бы вам не попробовать быстрый POC, используя эту статью в качестве примера (вам нужно только добавить к ней материал Steeltoe и платформы PCF и попробовать):

https://www.codeproject.com/Articles/1217036/Console-Logging-and-Reading-Excel-Files-with-NET-C

( Эта другая проблема с NLog связана с вашей проблемой в репозитории Steeltoe Github, и она дала мне идею, думаю, стоит попробовать)

Надеюсь, это поможет!

0 голосов
/ 20 марта 2019

Я добавил поддержку Serilog для Steeltoe здесь: https://github.com/SteeltoeOSS/Logging/pull/4

Дайте мне знать, если это решит вашу проблему.

0 голосов
/ 24 октября 2018

Steeltoe.Extensions.Logging.DynamicLogger - это обертка вокруг Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider.Как он существует сегодня, он предназначен для использования с системой регистрации Microsoft, где допускается несколько ILoggerProviders.

Serilog вставляет себя в конвейер журналирования и не разрешает другие ILoggerProviders, поэтому добавление его в приложение с Steeltoe Management и DynamicLogger нарушит способность Steeltoe изменять уровни журналов во время выполнения.

Эндрю Локк написал хороший пост с некоторыми подробностями о том, как Serilog включается в .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...