最佳答案
控制台日志提供商有四个构造函数:
ConsoleLoggerProvider(IConsoleLoggerSettings)
ConsoleLoggerProvider(IOptionsMonitor<ConsoleLoggerOptions>)
ConsoleLoggerProvider(Func<String,LogLevel,Boolean>, Boolean)
ConsoleLoggerProvider(Func<String,LogLevel,Boolean>, Boolean, Boolean)
其中三个已被宣布过时,并附有以下信息:
此方法已过时,将在以后的版本中删除。推荐的替代方法是使用 LoggerFactory 配置筛选,使用 Console LoggerOptions 配置日志记录选项。
使用构造函数 # 3,创建带有 ConsoleLoggerProvider
的 LoggerFactory
非常简单(正如在 实体框架核心日志记录上记录的那样) :
var loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider((category, level) => level >= LogLevel.Information, true) });
但是因为它已经被废弃了,我们只剩下构造函数 # 2:
var configureNamedOptions = new ConfigureNamedOptions<ConsoleLoggerOptions>("", null);
var optionsFactory = new OptionsFactory<ConsoleLoggerOptions>(new []{ configureNamedOptions }, Enumerable.Empty<IPostConfigureOptions<ConsoleLoggerOptions>>());
var optionsMonitor = new OptionsMonitor<ConsoleLoggerOptions>(optionsFactory, Enumerable.Empty<IOptionsChangeTokenSource<ConsoleLoggerOptions>>(), new OptionsCache<ConsoleLoggerOptions>());
var loggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider(optionsMonitor) }, new LoggerFilterOptions { MinLevel = LogLevel.Information });
这看起来太复杂了,我是不是错过了一些更简单的东西?