started practices net getting example ejemplo best asp c# winforms nlog

c# - practices - Iniciar sesión en varios archivos utilizando Nlog



nlog rules (2)

Creo que necesitas definir otro logger.

<logger name="SpecialLogger" minlevel="Trace" writeTo="logfile2" />

Y luego en esta otra ubicación en el registro del proyecto:

var logger = LogManager.GetLogger("SpecialLogger");

Estoy utilizando NLog para fines 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 tipo, así que quiero hacer un debugLog2.txt y registrar datos en él. ¿Cómo puedo modificar mi código anterior para hacer esto?


Si desea un archivo separado para registrar información de otra parte de su programa, puede agregar un registrador y otro objetivo.

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 su programa acceda a ellos con:

var task1Logger = NLog.LogManager.GetLogger("task1Logger") var task2Logger = NLog.LogManager.GetLogger("task2Logger")