7
我希望NLog目标停止监听日志。 RemoveTarget方法似乎不起作用。这是一个失败的测试。如何取消订阅NLog目标
public class when_stopping_to_listen
{
static Logger Logger;
static MemoryTarget target;
Establish context =() =>
{
var config = new LoggingConfiguration();
Logger = LogManager.GetLogger("TestLogger");
target = new MemoryTarget {Layout = "${message}", Name = "TestTarget"};
config.AddTarget(target.Name, target);
config.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, target));
LogManager.Configuration = config;
};
Because of =() =>
{
var config = LogManager.Configuration;
config.RemoveTarget(target.Name);
LogManager.Configuration = config;
Logger.Info("Test");
};
It should_be_empty =() => target.Logs.ShouldBeEmpty();
}
在此先感谢。
所以它的所有有关的规则? – forki23 2012-03-15 19:35:02
似乎是这样的......从Nlog的源代码中,它似乎一旦初始化规则并且不再使用LogManager.Configuration.ConfiguredNamedTargets集合。这就是为什么'RemoveTarget'不起作用。 – nemesv 2012-03-15 19:38:19