Freigeben über


Standardformatierung der Konsolenprotokollierung in Containerimages

Der Standardkonsolenformatierer, 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 dazu, dass die Konsolenausgabe ähnlich wie folgt formatiert wurde:

{"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, mehrteiligen, 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ührte Version

.NET 6.0.5 (Wartung vom Mai 2022)

Art der einschneidenden Änderung

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für Ä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 basieren, wie in dotnet/dotnet-docker#2725 beschrieben.

Wenn Sie die JSON-Formatierung weiterhin verwenden möchten, können Sie den Container so konfigurieren, dass er verwendet wird, indem Sie den Wert der Logging__Console__FormatterName Umgebungsvariable auf Jsonfestlegen.

Betroffene APIs

Keiner.

Siehe auch