Compartir a través de


El mensaje ya no está duplicado en la salida del registro de consola

Al iniciar sesión en la consola mediante el formateador JSON, los mensajes de registro ya no se duplican en la salida del registro. Anteriormente, los mensajes aparecían tres veces: una vez como nivel superior Message, de nuevo dentro del State objeto y una tercera vez como la cadena de formato original.

Versión introducida

.NET 10

Comportamiento anterior

Anteriormente, al usar un registrador de consola configurado con el formateador JSON, los mensajes de registro se duplicaron en la salida. Por ejemplo, el código logger.LogInformation("This is an information message."); produjo la salida siguiente:

{
  "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 puede ver, Message aparece dos veces: una vez como nivel Message superior y de nuevo dentro del State objeto .

Nuevo comportamiento

A partir de .NET 10, Message solo aparece en el nivel superior y no dentro del State objeto (normalmente). La salida del registro tiene este aspecto:

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

Tipo de cambio disruptivo

Este es un cambio de comportamiento.

Motivo del cambio

El objetivo de este cambio es reducir la sobrecarga de registro innecesaria mediante la eliminación del contenido duplicado. Al evitar el formato repetido del mismo mensaje, el cambio ayuda a:

  • Minimice el tamaño de salida del registro.
  • Reduzca la confusión causada por la información redundante.
  • Mejore el rendimiento evitando varias operaciones de formato para el mismo mensaje.

En general, esto da como resultado registros más limpios, más eficientes y fáciles de leer.

Si ha analizado previamente la salida de registro para extraer el elemento Message desde dentro del objeto State, es seguro usar el Message de nivel superior en su lugar, ahora que se ha quitado la duplicación.

Nota:

En algunos casos, Message podría seguir apareciendo en el State objeto . Esto suele ocurrir cuando su contenido difiere del nivel Messagesuperior.

Las APIs afectadas