我正在编写一个小的文件转换工具。当文件被拖放到目录中时,它们会自动转换。
我正在使用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();
但是没有创建日志文件。
我做错了什么?有任何想法吗?
string filename = string.Format("C:\\LogFile-{0:yyyy-MM-dd_hh-mm-ss-tt}", DateTime.Now); var logFile = new FileTarget(filename); config.AddTarget(logFile);
也可以使用更短的用法。 - aozan88