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