Добавление / удаление файлов журналов во время выполнения в NLog

Я пишу небольшую утилиту преобразования файлов. Файлы автоматически конвертируются, когда они помещаются в каталог.

Я использую NLog для ведения журнала. Помимо центрального файла журнала, который настроен с использованием NLog.conf (и который принимает все сгенерированные сообщения), я хотел бы создать один дополнительный файл журнала для каждого входного файла, имеющий аналогичное имя и содержащий все журналы сообщения, написанные в процессе преобразования.

К сожалению, мне кажется, что я не могу найти, как правильно добавить новую цель файла вместе с соответствующим правилом во время выполнения. Я хочу, чтобы все объекты Logger записывали в новый файл журнала в процессе преобразования.

Я пробовал что-то вроде

var logfile = new NLog.Targets.FileTarget();
logfile.FileName = fileName + ".log";
logfile.KeepFileOpen = true;
logfile.Initialize();
var rule = new NLog.Config.LoggingRule("*", logfile);
NLog.LogManager.Configuration.LoggingRules.Add(rule);
NLog.LogManager.ReconfigExistingLoggers();
//
// Proceed with converting file
//
logfile.Flush();
NLog.LogManager.Configuration.LoggingRules.Remove(rule);
NLog.LogManager.ReconfigExistingLoggers();

, но файл журнала не был создан.

Что я сделал не так? Есть идеи?

29
задан MartinStettner 18 August 2010 в 20:09
поделиться