Поделиться через


Форматирование средства ведения журнала консоли по умолчанию в образах контейнеров

Модуль форматирования консоли по умолчанию, настроенный в aspnet контейнерах, изменился.

Прежнее поведение

В предыдущих выпусках обслуживания .NET 6 aspnet образы контейнеров были настроены с Logging__Console__FormatterName помощью переменной среды, для которой задано значение Json. Это привело к форматированию выходных данных консоли следующим образом:

{"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}"}}

Новое поведение

Начиная с .NET 6.0.5 aspnet образы контейнеров имеют Logging__Console__FormatterName переменную среды, не заданную по умолчанию. Это приводит к простому многостроному выводу консоли, доступному для чтения человеком, как показано ниже.

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

Представленные версии

.NET 6.0.5 (обслуживание за май 2022 г.)

Тип критического изменения

Это изменение может повлиять на совместимость исходного кода.

Причина изменения

Когда в выпуске .NET 6 GA было введено изменение форматирования JSON, оно сломало множество сценариев, зависящих от исходного, простого форматирования, как описано в dotnet/dotnet-docker#2725.

Если вы хотите продолжить использование форматирования JSON, вы можете настроить контейнер для его использования, установив для него значение Jsonпеременной Logging__Console__FormatterName среды.

Затронутые API

Нет.

См. также