ConsoleLoggerOptions 上已过时的属性
Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat 类型和 ConsoleLoggerOptions 上的一些属性现在已过时。
更改说明
从 .NET 5 开始,Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat 类型和 ConsoleLoggerOptions 上的很多属性已过时。 已过时的属性是:
- ConsoleLoggerOptions.DisableColors
- ConsoleLoggerOptions.IncludeScopes
- ConsoleLoggerOptions.TimestampFormat
- ConsoleLoggerOptions.UseUtcTimestamp
- ConsoleLoggerOptions.Format
随着新的格式化程序的引入,这些属性现在单独的格式化程序上可用。
更改原因
Format 属性是枚举类型,不能表示自定义格式化程序。
其余属性是在 ConsoleLoggerOptions 上设置的,应用于控制台日志的这两种内置格式。 但是,由于引入了新的格式化程序 API,在特定于格式化程序的选项上表示格式更加有意义。 这项更改可更好地区分记录器和记录器格式化程序。
引入的版本
5.0
建议操作
使用新的 ConsoleLoggerOptions.FormatterName 属性代替 ConsoleLoggerOptions.Format 属性。 例如:
loggingBuilder.AddConsole(options => { options.FormatterName = ConsoleFormatterNames.Systemd; });
FormatterName 和 Format 之间有一些区别:
- Format 只有两个可能的选项:
Default
和Systemd
。 - FormatterName 不区分大小写,可以是任何字符串。 保留的内置名称为
Simple
、Systemd
和Json
(.NET 5 及更高版本)。 "Format": "Systemd"
映射到"FormatterName": "Systemd"
。"Format": "Default"
映射到"FormatterName": "Simple"
。
- Format 只有两个可能的选项:
对于 DisableColors、IncludeScopes、TimestampFormat 和 UseUtcTimestamp 属性,请改为在新的 ConsoleFormatterOptions、JsonConsoleFormatterOptions 或 SimpleConsoleFormatterOptions 类型上使用相应的属性。 例如,ConsoleLoggerOptions.DisableColors 的相应设置为 SimpleConsoleFormatterOptions.ColorBehavior。
之前的代码:
loggingBuilder.AddConsole(options => { options.DisableColors = true; });
新代码:
loggingBuilder.AddSimpleConsole(options => { options.ColorBehavior = LoggerColorBehavior.Disabled; });
以下两个 JSON 代码片段显示了配置文件的更改方式。 旧配置文件:
{
"Logging": {
"LogLevel": {
"Default": "None",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
},
"Console": {
"LogLevel": {
"Default": "Information"
},
"Format": "Systemd",
"IncludeScopes": true,
"TimestampFormat": "HH:mm:ss",
"UseUtcTimestamp": true
}
},
"AllowedHosts": "*"
}
新配置文件:
{
"Logging": {
"LogLevel": {
"Default": "None",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
},
"Console": {
"LogLevel": {
"Default": "Information"
},
"FormatterName": "Systemd",
"FormatterOptions": {
"IncludeScopes": true,
"TimestampFormat": "HH:mm:ss",
"UseUtcTimestamp": true
}
}
},
"AllowedHosts": "*"
}
受影响的 API
- Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions.DisableColors
- Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions.IncludeScopes
- Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions.TimestampFormat
- Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions.UseUtcTimestamp
- Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions.Format
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈