En NLog es posible crear varios registradores con configuración diferente?

Tengo un componente que cada vez que se va a crear una instancia deben registrar todos los eventos en un archivo diferente que está relacionado con la nueva instancia.

Es esto posible con NLog? Si no hay marcos de registro que hacer eso?

InformationsquelleAutor max | 2011-07-17

2 Comentarios

  1. 22

    Sí, usted puede hacer eso. Usted puede configurar el registrador para ese tipo de registro a un objetivo específico. O usted puede configurar el registrador para ese tipo de registro de un objeto (como un archivo), nombrando el archivo (de forma automática), basado en el registrador de nombre.

    Ver el NLog archivo de configuración de la documentación aquí para algunos ejemplos.

    También, ver a mi post aquí para algunos de archivo de configuración de consejos.

    Aquí es un breve ejemplo de cómo se puede configurar de dos registradores: uno para un tipo específico que se registran en un archivo de salida con el nombre de ese tipo y otro para el resto de los madereros para registrar en un archivo basado en 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 de Nombre de tipo.Espacio.Class1 para ir a la «especial» del archivo (es decir, aquel cuyo nombre está determinado por el registrador), a continuación, puede añadir «final» para el registrador de specfication como este:

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

    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>

Dejar respuesta

Please enter your comment!
Please enter your name here