23
我在写一个小文件转换工具。将文件放入目录时会自动进行转换。在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();
但没有创建日志文件。
我错了什么?任何想法?
与重新分配的线是很重要的: LogManager.Configuration =配置; – habakuk 2011-05-04 10:14:15
澄清 **具有重新分配的行非常重要:LogManager.Configuration = config; ** 这是因为NLog为配置属性编写了getter和setter的方式。这并不漂亮,但它必须再次设置一个更改的对象;你不能直接更改属性。 – zshift 2014-04-18 14:01:55
我不得不在最后重新分配记录器变量以使其工作: logger = LogManager.GetCurrentClassLogger(); – Henry 2016-07-27 11:05:51