Iniciar sesión en varios archivos usando Nlog
Estoy usando NLog para propósitos de registro.
Mi código es el siguiente:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- make sure to set 'Copy To Output Directory' option for this file -->
<!-- go to http://nlog-project.org/wiki/Configuration_file for more information -->
<targets>
<target
name="logfile"
xsi:type="File"
layout="${message}"
fileName="${basedir}../Data/debugLog1.txt"
archiveAboveSize ="5000000"
maxArchiveFiles="2"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
</rules>
</nlog>
Estoy registrando datos en debugLog1.txt
. Ahora desde otra ubicación en el proyecto también quiero registrar datos, pero estos datos son de otro
escriba así que quiero hacer un debugLog2.txt
y registrar datos en él. ¿Cómo puedo modificar mi código anterior para hacer esto
2 answers
Creo que necesita definir otro registrador.
<logger name="SpecialLogger" minlevel="Trace" writeTo="logfile2" />
Y luego en esta otra ubicación en el registro del proyecto:
var logger = LogManager.GetLogger("SpecialLogger");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-03 13:41:20
Si desea un archivo separado para registrar la información de otra parte de su programa, puede agregar un registrador y otro destino.
Por ejemplo, si tiene un programa que está completando dos tareas diferentes y desea registrar esas tareas por separado, podría hacer lo siguiente
<targets>
<target
name="task1File"
xsi:type="File"
layout="${message}"
fileName="${basedir}../Data/debugLog1.txt"
archiveAboveSize ="5000000"
maxArchiveFiles="2"/>
<target
name="task2File"
xsi:type="File"
layout="${message}"
fileName="${basedir}../Data/debugLog2.txt"
archiveAboveSize ="5000000"
maxArchiveFiles="2"/>
</targets>
<rules>
<logger name="task1Logger" minlevel="Trace" writeTo="task1File" />
<logger name="task2Logger" minlevel="Trace" writeTo="task2File" />
</rules>
Luego en tu programa accede a ellos con:
var task1Logger = NLog.LogManager.GetLogger("task1Logger")
var task2Logger = NLog.LogManager.GetLogger("task2Logger")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-11 20:03:13