Przestarzałe właściwości w elemencie ConsoleLoggerOptions
Typ Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat i niektóre właściwości są ConsoleLoggerOptions teraz przestarzałe.
Opis zmiany
Począwszy od platformy .NET 5, Microsoft.Extensions.Logging.Console.ConsoleLoggerFormat typ i kilka właściwości są ConsoleLoggerOptions przestarzałe. Przestarzałe właściwości to:
- ConsoleLoggerOptions.DisableColors
- ConsoleLoggerOptions.IncludeScopes
- ConsoleLoggerOptions.TimestampFormat
- ConsoleLoggerOptions.UseUtcTimestamp
- ConsoleLoggerOptions.Format
Wraz z wprowadzeniem nowych formaterów te właściwości są teraz dostępne w poszczególnych formaterach.
Przyczyna wprowadzenia zmiany
Właściwość Format jest typem wyliczenia, który nie może reprezentować niestandardowego formatnika.
Pozostałe właściwości zostały ustawione i ConsoleLoggerOptions zastosowane do obu wbudowanych formatów dla dzienników konsoli. Jednak wraz z wprowadzeniem nowego interfejsu API formatowania bardziej zrozumiałe jest, aby formatowanie było reprezentowane w opcjach specyficznych dla formatowania. Ta zmiana zapewnia lepszą separację między rejestratorem a formaterami rejestratora.
Wprowadzona wersja
5,0
Zalecana akcja
Użyj nowej ConsoleLoggerOptions.FormatterName właściwości zamiast ConsoleLoggerOptions.Format właściwości . Na przykład:
loggingBuilder.AddConsole(options => { options.FormatterName = ConsoleFormatterNames.Systemd; });
Istnieje kilka różnic między elementami FormatterName i Format:
- Format ma tylko dwie możliwe opcje:
Default
iSystemd
. - FormatterName jest bez uwzględniania wielkości liter i może być dowolnym ciągiem. Zastrzeżone, wbudowane nazwy to
Simple
,Systemd
iJson
(.NET 5 i nowsze). "Format": "Systemd"
mapuje na"FormatterName": "Systemd"
."Format": "Default"
mapuje na"FormatterName": "Simple"
.
- Format ma tylko dwie możliwe opcje:
DisableColorsW przypadku właściwości , IncludeScopes, TimestampFormati UseUtcTimestamp użyj odpowiedniej właściwości w nowych ConsoleFormatterOptionstypach , JsonConsoleFormatterOptionslub SimpleConsoleFormatterOptions . Na przykład odpowiednie ustawienie dla ConsoleLoggerOptions.DisableColors parametru to SimpleConsoleFormatterOptions.ColorBehavior.
Poprzedni kod:
loggingBuilder.AddConsole(options => { options.DisableColors = true; });
Nowy kod:
loggingBuilder.AddSimpleConsole(options => { options.ColorBehavior = LoggerColorBehavior.Disabled; });
W poniższych dwóch fragmentach kodu JSON pokazano, jak zmienia się plik konfiguracji. Stary plik konfiguracji:
{
"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": "*"
}
Nowy plik konfiguracji:
{
"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": "*"
}
Dotyczy interfejsów 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