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.

Cómo combinar los destinos de NLog con los filtros de Microsoft ILogger?

Estamos utilizando NLog en nuestra API web .net 5.0 y sentimos que los niveles de registro están configurados en varios lugares. ¿Existe alguna forma de configurar nLog para que utilice la configuración de la aplicación y ignore los niveles de registro de nLog.config?

nlog.config:

<rules>
    <logger name="*" levels="Trace,Debug,Info,Warn,Error,Fatal" writeto="NLogTarget"></logger>
</rules>

AppSettings.json:

“`
“Logging”: {
“LogLevel”: {
“Default”: “Information”,
“Microsoft”: “Warning”,
“Microsoft.Hosting.Lifetime”: “Debug”
}
}
Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible configurar NLog para usar los niveles de registro especificados en la configuración de la aplicación y ignorar los niveles de registro establecidos en el archivo NLog.config. Esto se puede hacer incluyendo el elemento <rule> con el atributo final="true" en el archivo NLog.config. A continuación, se muestra un ejemplo:

    <rules final="true">
      <logger name="*" minlevel="${configsetting:Logging.LogLevel.Default}" writeto="NLogTarget"></logger>
      <logger name="Microsoft.*" minlevel="${configsetting:Logging.LogLevel.Microsoft}" writeto="NLogTarget"></logger>
    </rules>
    

    En este ejemplo, estamos utilizando el diseño de renderizado ${configsetting} de NLog para leer la configuración del nivel de registro desde el archivo de configuración de la aplicación. El atributo final="true" asegura que estas reglas tengan prioridad sobre cualquier otra regla en el archivo NLog.config.

    Tenga en cuenta que también estamos utilizando el atributo minlevel en lugar de levels. Esto se debe a que minlevel nos permite especificar un nivel de registro dinámico basado en la configuración de la aplicación, mientras que levels solo nos permite especificar una lista estática de niveles de registro.

    ¡Espero que esto ayude!

Comments are closed.