现在,该 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; });在以下两者之间FormatterNameFormat存在一些差异:
-
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