throwexceptions logger example ejemplo disable aspnetcore c# logging configuration nlog

c# - logger - nlog throwexceptions



Tener registradores NLog con diferente configuraciĆ³n. (2)

Mi ejemplo completo de NLog.config

<?xml version="1.0"?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="false" internalLogFile="//YOURSERVNAME/Logs/nlog-internal.log" internalLogLevel="Warn"> <variable name="basedir" value="${basedir}/Logs"></variable> <targets> <default-target-parameters xsi:type="File" fileName="${var:basedir}/Trace.csv" archiveFileName="${var:basedir}/Archives/Trace/Trace.{##}.csv" archiveNumbering="DateAndSequence" archiveDateFormat="yyyy-MM-dd" archiveEvery="Month" maxArchiveFiles="15" archiveAboveSize="10485760" keepFileOpen="false"/> <default-wrapper xsi:type="BufferingWrapper" bufferSize="500" flushTimeout="10000" /> <target name="TraceLog" xsi:type="File"> <layout xsi:type="CsvLayout" delimiter="Semicolon"> <column name="Time" layout="${longdate}" /> <column name="Callsite" layout="${callsite}" /> <column name="Level" layout="${level}" /> <column name="User" layout="${Identity}" /> <column name="Message" layout="${message}" /> </layout> </target> <target name="ErrorLog" xsi:type="File" fileName="${var:basedir}/Errors.csv" archiveFileName="${var:basedir}/Archives/Errors/Errors.{##}.csv" maxArchiveFiles="10"> <layout xsi:type="CsvLayout" delimiter="Semicolon"> <column name="Time" layout="${longdate}" /> <column name="Callsite" layout="${callsite}" /> <column name="Level" layout="${level}" /> <column name="User" layout="${Identity}" /> <column name="Message" layout="${message}" /> </layout> </target> </targets> <rules> <logger name="*" minlevel="Trace" writeTo="TraceLog" /> <logger name="*" minlevel="Error" writeTo="ErrorLog" /> </rules> </nlog>

¿En NLog es posible crear múltiples registradores con diferente configuración?

Tengo un componente que cada vez que se crea una instancia debe registrar todos los eventos en un archivo diferente relacionado con la nueva instancia.

¿Es esto posible con NLog? Si no, hay marcos de registro que hacen eso?


Si tu puedes hacerlo. Puede configurar el registrador para ese tipo para que se registre en un destino específico. O puede configurar el registrador para ese tipo para que se registre en un destino (como un archivo), nombrando el archivo (automáticamente) en función del nombre del registrador.

Consulte la documentación del archivo de configuración de NLog aquí para ver algunos ejemplos.

También, vea mi publicación aquí para obtener algunos consejos sobre el archivo de configuración.

Este es un ejemplo muy breve de cómo puede configurar dos registradores: uno para un tipo específico que se registrará en un archivo de salida nombrado para ese tipo y otro para que todos los demás registradores registren un archivo según la fecha.

<nlog> <targets> <target name="f1" xsi:type="File" fileName="${logger}.txt" /> <target name="f2" xsi:type="File" fileName="${shortdate}.txt" /> </targets> <rules> <logger name="Name.Space.Class1" minlevel="Trace" writeTo="f1" /> <logger name="*" levels="Debug" writeTo="f2" /> </rules> </nlog>

Si desea que los registros del tipo Name.Space.Class1 vayan al archivo "especial" (es decir, aquel cuyo nombre está determinado por el registrador), puede agregar "final" a la especificación del registrador de esta manera:

<logger name="Name.Space.Class1" minlevel="Trace"final="true" />