es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Expresión de Serilog para excluir HTTP 200 y HTTP 302:

Estoy usando Serilog y está registrando correctamente las solicitudes HTTP en mi aplicación web ASP.NET Core.

Sin embargo, quiero filtrar el ruido de las solicitudes HTTP 200 y HTTP 302 (básicamente solo estoy interesado en las respuestas 5xx y 4xx).

He intentado muchas variaciones en lo siguiente:

… recortar …
“Using”: [ “Serilog.Expressions” ],
“Filter”: [
{
“Name”: “ByExcluding”,
“Args”: {
“expression”: “@l = ‘Information’ and Properties.StatusCode in [‘200’, ‘302’]”
}
}
],
… recortar …

Pero sin éxito.

Las propiedades del evento de registro se ven así:

{
“TimeStamp”: “2021-12-09T09:00:18.1586954”,
“Level”: “Information”,
“Message”: “HTTP \”GET\” \”/xxx/yyy\” respondió 200 en 50.2048 ms”,
“MessageTemplate”: “HTTP {RequestMethod} {RequestPath} respondió {StatusCode} en {Elapsed:0.0000} ms”,
“Properties”: {
“RequestMethod”: “GET”,
“RequestPath”: “/xxx/yyy”,
“StatusCode”: 200,
“Elapsed”: 50.2048,
“SourceContext”: “Serilog.AspNetCore.RequestLoggingMiddleware”,
“RequestId”: “8000050f-0006-eb00-b63f-84710c7967bb”
},
“Renderings”: {
“Elapsed”: [
{
“Format”: “0.0000”,
“Rendering”: “50.2048”
}
]
}
}

Serilog está prestando atención si uso un filtro como “@l = ‘Information'”, pero cualquier intento de filtrar basado en las propiedades del evento de registro no funciona.

¡Cualquier ayuda sería apreciada!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para filtrar el ruido de las solicitudes http 200 y http 302 y solo registrar las solicitudes http 5xx y 4xx en Serilog, puede utilizar el siguiente filtro en su configuración de Serilog:

    "Filtro": [
      {
        "Nombre": "AlExcluir",
        "Argumentos": {
          "expresión": "Propiedades.CódigoDeEstado = 200 o Propiedades.CódigoDeEstado = 302"
        }
      }
    ]
    

    Este filtro excluirá todos los eventos de registro donde el valor de Propiedades.CódigoDeEstado sea tanto 200 como 302. Puede personalizar este filtro para excluir otros códigos de estado también.

    Es importante tener en cuenta que el valor de expresión en la configuración del filtro se escribe utilizando el lenguaje de expresiones de Serilog, que le permite realizar operaciones de filtrado complejas. Puede obtener más información sobre el lenguaje de expresiones de Serilog en la documentación oficial de Serilog.

    Una vez que haya actualizado su configuración de Serilog, solo debería ver las solicitudes http 5xx y 4xx registradas en la salida de registro de la aplicación.

Comments are closed.