Ответ 1
Я думаю, вам нужно определить другой регистратор.
<logger name="SpecialLogger" minlevel="Trace" writeTo="logfile2" />
И затем в это другое место в журнале проекта:
var logger = LogManager.GetLogger("SpecialLogger");
Я использую NLog для целей ведения журнала.
Мой код выглядит следующим образом:
<?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>
Я регистрирую данные в debugLog1.txt
. Теперь из другого места в проекте я также хочу регистрировать данные, но эти данные относятся к другому
поэтому я хочу сделать debugLog2.txt
и записать данные в журнал. Как я могу изменить свой код выше, чтобы сделать это
Я думаю, вам нужно определить другой регистратор.
<logger name="SpecialLogger" minlevel="Trace" writeTo="logfile2" />
И затем в это другое место в журнале проекта:
var logger = LogManager.GetLogger("SpecialLogger");
Если вы хотите, чтобы отдельный файл регистрировал информацию из другой части вашей программы, вы можете добавить регистратор и другую цель.
Например, если у вас есть программа, которая выполняет две разные задачи, и вы хотите, чтобы эти задачи выполнялись отдельно, вы могли бы сделать следующие
<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>
Затем в вашу программу вы получите доступ к ним:
var task1Logger = NLog.LogManager.GetLogger("task1Logger")
var task2Logger = NLog.LogManager.GetLogger("task2Logger")