Параметры и конфигурация для ведения журнала консоли - как это работает в исходном коде?
Я пытаюсь реализовать свой собственный регистратор. Я смотрел реализацию 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