Параметры и конфигурация для ведения журнала консоли - как это работает в исходном коде?

Я пытаюсь реализовать свой собственный регистратор. Я смотрел реализацию Console Logger от Microsoft.

Вы можете настроить ConsoleLoggerOptions в AppSettings следующим образом:

{
  "Logging": {
    "IncludeScopes": true,
    "LogLevel": {
      "Default": "Information",
      "System": "Warning",
      "Microsoft": "Warning",
    },
    "Console": {
      "DisableColors": true
    }
}

Глядя на расширение AddConsole(): https://github.com/dotnet/extensions/blob/master/src/Logging/Logging.Console/src/ConsoleLoggerFactoryExtensions.cs

Как внутреннее работает для опций? Где он "связывает" его с "Консолью", где он идет от ConsoleLoggerOptions к консоли?

Я просто не понимаю после этого. Просто добавление опций к сервисам "работает"?

1 ответ

Решение

Итак, я копнул немного глубже:

ConsoleLoggerProvider имеет псевдоним поставщика, который переименовывает его в "Console": https://github.com/dotnet/extensions/blob/master/src/Logging/Logging.Console/src/ConsoleLoggerProvider.cs

И конфигурация добавляется на основе имени псевдонима:https://github.com/dotnet/extensions/blob/55518d79834d3319c91f40b449d028338b129ed6/src/Logging/Logging.Configuration/src/LoggerProviderConfigurationFactory.cs

довольно хорошо спрятано imo

Другие вопросы по тегам