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.

Mostrar solo registros de nivel debug en Serilog

Quiero mostrar solo los registros del nivel de depuración (debug), pero ninguno de los otros niveles, ya sea por debajo o por encima del nivel de depuración.
Además, quiero hacerlo en la configuración en el archivo appsettings.json, no en la clase de inicio.
Aquí está mi archivo appsettings.json:

"Serilog": {
  "MinimumLevel": {
    "Default": "Debug",
    "Override": {
      "System": "Debug",
      "Microsoft": "Debug"
    }
  },
  "WriteTo": [
    {
      "Name": "Seq",
      "Args": {
        "serverUrl": "http://localhost:5341/",
        "compact": true
      }
    },
    {
      "Name": "Console"
    },
    {
      "Name": "File",
      "Args": {
        "path": "D:\\dev.SmartCity.Peafowls.Logs\\PeafowlsLog_.txt",
        "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] [{SourceContext}] [{EventId}] {Message}{NewLine}{Exception}",
        "rollingInterval": "Day",
        "rollOnFileSizeLimit": true,
        "fileSizeLimitBytes": 4194304
      }
    }
  ],
  "Enrich": [ "FromLogContext" ]
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para mostrar solo el nivel de depuración de los registros en el archivo appsettings.json, es necesario agregar un filtro a la configuración de Serilog. Aquí hay una versión modificada del archivo appsettings.json que configura Serilog para solo mostrar los registros con el nivel “Debug”:

    {
      "Serilog": {
        "MinimumLevel": {
          "Default": "Debug",
          "Override": {
            "System": "Debug",
            "Microsoft": "Debug"
          }
        },
        "WriteTo": [
          {
            "Name": "Seq",
            "Args": {
              "serverUrl": "http://localhost:5341/",
              "compact": true
            }
          },
          {
            "Name": "Console"
          },
          {
            "Name": "File",
            "Args": {
              "path": "D:\\dev.SmartCity.Peafowls.Logs\\PeafowlsLog_.txt",
              "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] [{SourceContext}] [{EventId}] {Message}{NewLine}{Exception}",
              "rollingInterval": "Day",
              "rollOnFileSizeLimit": true,
              "fileSizeLimitBytes": 4194304
            },
            "Filter": {
              "Name": "ByIncludingOnly",
              "Args": {
                "levelSwitch": {
                  "Name": "LoggingLevelSwitch",
                  "MinimumLevel": "Debug"
                }
              }
            }
          }
        ],
        "Enrich": [ "FromLogContext" ]
      }
    }
    

    En el sink “File”, hemos agregado una configuración de “Filter” que especifica incluir únicamente los registros con nivel “Debug” o superior. Esto se logra utilizando el filtro “ByIncludingOnly” con un “levelSwitch” configurado en “Debug”.

    Con esta configuración, solo se mostrarán los registros con nivel “Debug” en los destinos de archivo, consola y Seq. Se ignorarán los demás niveles.

Comments are closed.