Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
Ação recomendada
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
- Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsole
- Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddConsoleFormatter
- Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddJsonConsole
- Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddSimpleConsole
- Microsoft.Extensions.Logging.ConsoleLoggerExtensions.AddSystemdConsole