我尝试通过以下方式更改NLog的配置:
LogManager.Configuration.AddTarget (name, foo);
LogManager.Configuration.LoggingRules.Add (new LoggingRule ("*", LogLevel.Trace, foo));
但是它默默地忽略了我的变化。但是,当我尝试
时SimpleConfigurator.ConfigureForTargetLogging (this, level);
它立即起作用 - 但丢弃了之前的所有配置。为什么会这样,我该如何解决这个问题?
答案 0 :(得分:0)
SimpleConfigurator取代了当前配置,因此您无法将其用于聚合案例。
除非您通过LogManager.Configuration = new_config
通知,否则NLog不会检测并遵循对其当前配置所做的更改。所以请改用它:
var conf = LogManager.Configuration;
conf.AddTarget (name, foo);
conf.LoggingRules.Add (new LoggingRule ("*", LogLevel.Trace, foo));
LogManager.Configuration = conf;