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


По умолчанию 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.

Затронутые API