Partilhar via


O formato padrão de ActivityId é W3C

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

Alterar descrição

O formato de ID de atividade do W3C foi introduzido no .NET Core 3.0 como uma alternativa ao formato de ID hierárquico. No entanto, para preservar a compatibilidade, o formato W3C não foi tornado 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 linguagem.

Se o seu aplicativo tiver como destino uma plataforma diferente do .NET 5 ou posterior, ele experimentará o comportamento antigo, onde Hierarchical é 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 está definido como ActivityIdFormat.W3C.

Versão introduzida

5.0

Se seu 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 se os sistemas atuais dependerem do formato do identificador, poderá preservar o comportamento antigo definindo DefaultIdFormat como ActivityIdFormat.Hierarchical. Como alternativa, você pode definir uma opção AppContext de três maneiras:

  • No arquivo do projeto.

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

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true
            }
        }
    }
    
  • Através de uma variável de ambiente.

    Defina DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL como true ou 1.

APIs afetadas