Compartilhar via


O ActivityIdFormat padrão é W3C

O formato de identificador padrão para a atividade (Activity.DefaultIdFormat) agora é ActivityIdFormat.W3C.

Descrição da alteração

O formato de ID da atividade W3C foi introduzido no .NET Core 3.0 como uma alternativa ao formato de ID hierárquica. No entanto, para preservar a compatibilidade, o formato W3C não foi feito o padrão até o .NET 5. O padrão foi alterado no .NET 5 porque o formato W3C foi ratificado e ganhou força em várias implementações de idioma.

Se seu aplicativo for direcionado a uma plataforma diferente do .NET 5 ou posterior, ele experimentará o comportamento antigo, onde Hierarchical está o formato padrão. Esse padrão se aplica às plataformas net45+, netstandard1.1+, e netcoreapp (1.x, 2.x e 3.x). No .NET 5 e posterior, Activity.DefaultIdFormat é definido como ActivityIdFormat.W3C.

Versão introduzida

5,0

Se o aplicativo for independente do identificador usado para rastreamento distribuído, nenhuma ação será necessária. Bibliotecas como ASP.NET Core e HttpClient podem consumir ou propagar ambas as versões do ActivityIdFormat.

Se você precisar de interoperabilidade com sistemas existentes ou sistemas atuais dependerem do formato do identificador, você poderá preservar o comportamento antigo definindo DefaultIdFormat como ActivityIdFormat.Hierarchical. Como alternativa, você pode definir a opção AppContext de uma das três seguintes maneiras:

  • No arquivo de projeto.

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" />
    </ItemGroup>
    
  • No arquivo runtimeconfig.json.

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true
            }
        }
    }
    
  • Por meio de uma variável de ambiente.

    Configure DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL para true ou 1.

APIs afetadas