Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous vous connectez à la console à l’aide du formateur JSON, les messages de journal ne sont plus dupliqués dans la sortie du journal. Auparavant, les messages apparaissaient généralement trois fois : une fois à un niveau supérieur Message, à nouveau dans l’objet State, et une troisième fois comme chaîne de format d’origine.
Version introduite
.NET 10
Comportement précédent
Auparavant, lors de l’utilisation d’un enregistreur d’événements de console configuré avec le formateur JSON, les messages de journal étaient dupliqués dans la sortie. Par exemple, le code logger.LogInformation("This is an information message."); a produit la sortie suivante :
{
"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."
}
}
Comme vous pouvez le voir, Message apparaît deux fois : une fois comme niveau supérieur Message et à nouveau à l’intérieur de l’objet State .
Nouveau comportement
À partir de .NET 10, Message apparaît uniquement au niveau supérieur et non à l’intérieur de l’objet State (généralement). La sortie du journal ressemble à ceci :
{
"EventId": 0,
"LogLevel": "Information",
"Category": "Program",
"Message": "This is an information message.",
"State": {
"{OriginalFormat}": "This is an information message."
}
}
Type de changement cassant
Ce changement est un changement de comportement.
Raison de la modification
L’objectif de cette modification est de réduire la surcharge de journalisation inutile en éliminant le contenu en double. En évitant la mise en forme répétée du même message, la modification permet de :
- Réduisez la taille de sortie du journal.
- Réduisez la confusion causée par les informations redondantes.
- Améliorez les performances en empêchant plusieurs opérations de mise en forme pour le même message.
Dans l’ensemble, cela entraîne des journaux plus propres, plus efficaces et plus faciles à lire.
Action recommandée
Si vous avez précédemment analysé la sortie de journalisation pour extraire le Message de l’objet State, il est recommandé d’utiliser à la place le Message de niveau supérieur, maintenant que la duplication a été supprimée.
Remarque
Dans certains cas, un Message peut toujours apparaître dans l’objet State . Cela se produit généralement lorsque son contenu diffère du niveau Messagesupérieur.
API affectées
- 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