По умолчанию ActivityIdFormat имеет значение W3C
По умолчанию в качестве формата идентификатора действия (Activity.DefaultIdFormat) теперь используется ActivityIdFormat.W3C.
Описание изменения
Формат идентификатора действия W3C был представлен в .NET Core 3.0 в качестве альтернативы иерархическому формату идентификатора. Тем не менее, чтобы обеспечить совместимость, вплоть до версии .NET 5 формат W3C не использовался по умолчанию. В .NET 5 значение по умолчанию было изменено в связи с ратификацией формата W3C для применения в различных реализациях языка.
Если ваше приложение предназначено не для платформы .NET 5 или более поздней версии, в нем будет применяться поведение предшествующих версий, в которых по умолчанию использовался формат Hierarchical. Это значение по умолчанию применяется для платформ net45+, netstandard1.1+ и netcoreapp (1.x, 2.x и 3.x). В .NET 5 и более поздних версий Activity.DefaultIdFormat имеет значение ActivityIdFormat.W3C.
Представленные версии
5,0
Рекомендуемое действие
Если в вашем приложении не используется идентификатор для распределенной трассировки, никаких действий не требуется. Такие библиотеки, как ASP.NET Core и HttpClient, могут использовать и распространять обе версии ActivityIdFormat.
Если вам необходимо обеспечить совместимость с существующими системами, или в текущих системах учитывается формат идентификатора, вы можете сохранить старое поведение, установив для DefaultIdFormat значение ActivityIdFormat.Hierarchical. Кроме того, вы можете задать параметр AppContext одним из трех способов:
В файле проекта.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" /> </ItemGroup>
В файле runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true } } }
С помощью переменной среды.
Задайте для
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
значениеtrue
или 1.