7
Tôi muốn mục tiêu NLog ngừng ghi nhật ký. Phương thức RemoveTarget dường như không hoạt động. Đây là một thử nghiệm thất bại.Làm cách nào tôi có thể hủy đăng ký mục tiêu 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();
}
Xin cảm ơn trước.
Vì vậy, nó là tất cả về các quy tắc? – forki23
Có vẻ như vậy ... Từ mã nguồn của Nlog có vẻ như một khi nó đã khởi tạo các quy tắc với các mục tiêu, nó không sử dụng bộ sưu tập 'LogManager.Configuration.ConfiguredNamedTargets' nữa. Đó là lý do tại sao 'RemoveTarget' không hoạt động. – nemesv