我正在尝试实现自己的自定义记录器。我一直在研究微软控制台记录器的实现。
您可以在"应用设置"中配置控制台记录器选项,如下所示:
{
"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#L18
期权的内部工作原理如何?它在哪里与"控制台"绑定",它从控制台记录器选项到控制台的哪里?
我只是在这一点之后不明白。只是将选项添加到服务只是"有效"?
所以我挖得更深一点:
ConsoleLoggerProvider 有一个提供程序别名,将其重命名为"Console": https://github.com/dotnet/extensions/blob/master/src/Logging/Logging.Console/src/ConsoleLoggerProvider.cs#L14
并且根据别名添加配置: https://github.com/dotnet/extensions/blob/55518d79834d3319c91f40b449d028338b129ed6/src/Logging/Logging.Configuration/src/LoggerProviderConfigurationFactory.cs#L27
隐藏得很好 IMO