Compartilhar via


Mensagem não mais duplicada na saída do log do Console

Ao registrar logs no console usando o formatador JSON, as mensagens de log não são mais duplicadas na saída de log. Anteriormente, as mensagens normalmente apareciam três vezes: uma como o nível Messagesuperior, novamente dentro do State objeto e uma terceira vez como a cadeia de caracteres de 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 no resultado. 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 vez como o nível Message superior e outra 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 de 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

Essa alteração é uma mudança comportamental.

Motivo da alteração

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

  • Minimizar 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, mais eficientes e mais fáceis de ler.

Se você analisou anteriormente a saída de log para extrair a Message de dentro do State objeto, é seguro usar o nível Message superior, 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