【发布时间】:2019-05-10 11:26:30
【问题描述】:
ConsoleLoggerProvider 有四个构造函数:
ConsoleLoggerProvider(IConsoleLoggerSettings)ConsoleLoggerProvider(IOptionsMonitor<ConsoleLoggerOptions>)ConsoleLoggerProvider(Func<String,LogLevel,Boolean>, Boolean)ConsoleLoggerProvider(Func<String,LogLevel,Boolean>, Boolean, Boolean)
其中三个被此消息宣布已过时:
此方法已过时,将在未来版本中删除。推荐的替代方法是使用 LoggerFactory 来配置过滤和 ConsoleLoggerOptions 来配置日志记录选项。
使用构造函数#3,创建带有ConsoleLoggerProvider 的LoggerFactory 很简单(如Entity Framework Core - Logging 中所述):
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 });
这似乎太复杂了,我错过了一些更简单的东西吗?
【问题讨论】:
-
.NET5 变得更糟,而不是更好.....
标签: .net-core asp.net-core-2.2