В моем заявлении я работаю над несколькими тысячами документов в день. Я бы хотел, в некоторых случаях, записать несколько журналов по одному документу. Затем я хочу, чтобы для определенной цели менялось имя выходного файла (и только имя файла) во время выполнения.
Вокруг Интернета я нашел, как создать цель, программируя меня. Я бы просто обновил имя файла, программируя. Я попробовал код ниже. Ошибка, которую я получаю, - "LayoutRender не найден" logDirectory.
Любая идея?
Спасибо,
var target = (FileTarget)LogManager.Configuration.FindTargetByName("logfile");
target.FileName = "${logDirectory}/file2.txt";
LoggingConfiguration config = new LoggingConfiguration();
var asyncFileTarget = new AsyncTargetWrapper(target);
config.AddTarget("logfile", asyncFileTarget);
LogManager.Configuration = config;
Конфигурационный файл:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<variable name="logDirectory" value="C:/MyLogs"/>
<targets>
<target name="logfile" xsi:type="File" layout="${date:format=dd/MM/yyyy HH\:mm\:ss.fff}|${level}|${stacktrace}|${message}" fileName="${logDirectory}/file.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>