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