Standardformatierung der Konsolenprotokollierung in Containerimages
Der standardmäßige Konsolenformatierer, der in aspnet
-Containern konfiguriert ist, wurde geändert.
Vorheriges Verhalten
In früheren Wartungsversionen von .NET 6 wurden aspnet
-Containerimages mit der Logging__Console__FormatterName
-Umgebungsvariablen auf Json
festgelegt. Dies führte zu einer Konsolenausgabe, die ähnlich wie die folgende formatiert war:
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Now listening on: http://localhost:7000/","State":{"Message":"Now listening on: http://localhost:7000/","address":"http://localhost:7000/","{OriginalFormat}":"Now listening on: {address}"}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Now listening on: http://localhost:7001/","State":{"Message":"Now listening on: http://localhost:7001/","address":"http://localhost:7001/","{OriginalFormat}":"Now listening on: {address}"}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Now listening on: http://localhost:7002/","State":{"Message":"Now listening on: http://localhost:7002/","address":"http://localhost:7002/","{OriginalFormat}":"Now listening on: {address}"}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Application started. Press Ctrl\u002BC to shut down.","State":{"Message":"Application started. Press Ctrl\u002BC to shut down.","{OriginalFormat}":"Application started. Press Ctrl\u002BC to shut down."}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Hosting environment: Development","State":{"Message":"Hosting environment: Development","envName":"Development","{OriginalFormat}":"Hosting environment: {envName}"}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Content root path: C:\\source\\temp\\web50","State":{"Message":"Content root path: C:\\source\\temp\\web50","contentRoot":"C:\\source\\temp\\web50","{OriginalFormat}":"Content root path: {contentRoot}"}}
Neues Verhalten
Ab .NET 6.0.5 ist für aspnet
-Containerimages die Logging__Console__FormatterName
-Umgebungsvariable standardmäßig deaktiviert. Dies führt zu einer einfachen, mehrzeiligen, lesbaren Konsolenausgabe ähnlich der folgenden:
warn: Microsoft.AspNetCore.Server.HttpSys.MessagePump[37]
Overriding address(es) ''. Binding to endpoints added to UrlPrefixes instead.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:7000/
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:7001/
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:7002/
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\source\temp\web50
Eingeführt in Version
.NET 6.0.5 (Wartung im Mai 2022)
Typ des Breaking Changes
Diese Änderung kann sich auf die Quellkompatibilität auswirken.
Grund für die Änderung
Als die Änderung zur Verwendung der JSON-Formatierung in der .NET 6 GA-Version eingeführt wurde, wurden viele Szenarien unterbrochen, die auf der ursprünglichen, einfachen Formatierung basierten, wie in dotnet/dotnet-docker#2725 beschrieben.
Empfohlene Maßnahme
Wenn Sie die JSON-Formatierung weiterhin verwenden möchten, können Sie ihren Container für die Verwendung konfigurieren, indem Sie den Wert der Logging__Console__FormatterName
-Umgebungsvariablen auf Json
festlegen.
Betroffene APIs
Keine.