Partilhar via


A mensagem deixou de ser duplicada na saída do log do console

Ao registrar no console usando o formatador JSON, as mensagens de log não são mais duplicadas na saída do log. Anteriormente, as mensagens normalmente apareciam três vezes: uma vez como o nível Messagesuperior, novamente dentro do State objeto e uma terceira vez como a cadeia de caracteres do formato original.

Versão introduzida

.NET 10

Comportamento anterior

Anteriormente, ao usar um registrador de console configurado com o formatador JSON, as mensagens de log eram duplicadas na saída. Por exemplo, o código logger.LogInformation("This is an information message."); produziu a seguinte saída:

{
  "EventId": 0,
  "LogLevel": "Information",
  "Category": "Program",
  "Message": "This is an information message.",
  "State": {
    "Message": "This is an information message.",
    "{OriginalFormat}": "This is an information message."
  }
}

Como você pode ver, Message aparece duas vezes: uma como o nível Message superior e novamente dentro do State objeto.

Novo comportamento

A partir do .NET 10, Message aparece apenas no nível superior e não dentro do State objeto (normalmente). A saída do log tem esta aparência:

{
  "EventId": 0,
  "LogLevel": "Information",
  "Category": "Program",
  "Message": "This is an information message.",
  "State": {
    "{OriginalFormat}": "This is an information message."
  }
}

Tipo de mudança disruptiva

Esta alteração é de natureza comportamental .

Motivo da mudança

O objetivo dessa alteração é reduzir a sobrecarga de log desnecessária, eliminando conteúdo duplicado. Ao evitar a formatação repetida da mesma mensagem, a alteração ajuda:

  • Minimize o tamanho da saída do log.
  • Reduza a confusão causada por informações redundantes.
  • Melhore o desempenho impedindo várias operações de formatação para a mesma mensagem.

No geral, isso resulta em logs mais limpos, eficientes e fáceis de ler.

Se analisaste anteriormente a saída de log para extrair o Message de dentro do objeto State, é seguro usar o elemento de nível superior Message em vez disso, agora que a duplicação foi removida.

Observação

Em alguns casos, um Message ainda pode aparecer dentro do State objeto. Isso normalmente acontece quando seu conteúdo difere do nível Messagesuperior.

APIs afetadas