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 Jsonfestgelegt. 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.

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.

Weitere Informationen