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