2012-07-03 18 views
0

我試圖通過改變NLOG的配置:爲什麼NLog配置更改不生效?

LogManager.Configuration.AddTarget (name, foo); 
LogManager.Configuration.LoggingRules.Add (new LoggingRule ("*", LogLevel.Trace, foo)); 

但它悄悄地忽略我的變化。然而,當我嘗試

SimpleConfigurator.ConfigureForTargetLogging (this, level); 

它立即工作 - 但丟棄了以前的所有配置。爲什麼是這樣,我該如何解決這個問題?

回答

0

SimpleConfigurator替換當前配置,因此您不能將它用於聚合情況。

NLog不檢測並遵循對其當前配置所做的更改,除非您通過LogManager.Configuration = new_config通知它。所以用這個代替:

var conf = LogManager.Configuration; 
conf.AddTarget (name, foo); 
conf.LoggingRules.Add (new LoggingRule ("*", LogLevel.Trace, foo)); 
LogManager.Configuration = conf;