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.
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 atributofinal="true"
en el archivo NLog.config. A continuación, se muestra un ejemplo: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 atributofinal="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 delevels
. Esto se debe a queminlevel
nos permite especificar un nivel de registro dinámico basado en la configuración de la aplicación, mientras quelevels
solo nos permite especificar una lista estática de niveles de registro.¡Espero que esto ayude!