Saltar al contenido

¿Por qué Serilog no escribe mensajes de depuración incluso cuando el nivel está configurado en depuración?

Si encuentras algún detalle que no comprendes nos puedes dejar un comentario y te responderemos lo más rápido posible.

Solución:

creo que tendria que ser esto...

LogEventLevel level = LogEventLevel.Information;
#if DEBUG
            level = LogEventLevel.Debug;
#endif

        UsageLogger = new LoggerConfiguration()
    #if DEBUG
    .MinimumLevel.Debug()
    #endif
           .Enrich.With(new ThreadIdEnricher())
           .WriteTo.File("UsageLogging.txt", restrictedToMinimumLevel: level, outputTemplate: LogTemplate, rollingInterval: RollingInterval.Day)
           .Enrich.With(new ThreadIdEnricher())
           .WriteTo.Console(restrictedToMinimumLevel: level, outputTemplate: LogTemplate)
           .Enrich.With(new ThreadIdEnricher())
            .CreateLogger();

El mío es un proyecto asp.net core 2.0 y lee la configuración del archivo appsetting.Development.json

En el archivo Startup.cs, primero debe crear el registrador de la siguiente manera.

var seriLogger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .ReadFrom.Configuration(configuration)    
    .CreateLogger();

Aquí es importante tener en cuenta que el nivel mínimo se establece en Verbose. Nota

.MinimumLevel.Verbose()

A continuación, appsettings.Developement.json tendría el siguiente aspecto.


  "ConnectionStrings": 
  "HPlusSportsConnection": "Data Source=DESKTOP-Feast\sqlexpress;Initial Catalog=H_Plus_Sports;Persist Security Info=True;User ID=fakeUserId;Password=fakePassword"
,
"Serilog": 
"WriteTo": [
  
    "Name": "Seq",
    "Args": 
      "restrictedToMinimumLevel": "Debug",
      "serverUrl": "http://localhost:5341"
    
  ,
  
    "Name": "File",
    "Args": TenantName
  
],

Así que tengo varios lavabos y cada uno tiene su propio nivel. El fregadero Seq tiene depuración, por lo que la depuración y las superiores se registrarán en el fregadero de secuencia. Y para el archivo de texto, el nivel es Verbose, para que efectivamente todo se registre.

Nuevamente para enfatizar,

.MinimumLevel.Verbose()

es importante aquí. Si omite o comenta eso, tanto el archivo como la secuencia solo tendrán registros de información y superiores, aunque los haya configurado para verbosar o depurar. Eso es porque el nivel mínimo es por defecto "Información".

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.