我使用Nlog進行日誌記錄,並且我發現每次調用nLog時我的日誌文件中都有5個條目。我該如何解決它?例如 。重複的日誌條目Nlog
2012-12-23 18:18:19.2465 NinjaTrader.Strategy.LODHOD.OnStartUp Debug startup
2012-12-23 18:18:19.2465 NinjaTrader.Strategy.LODHOD.OnStartUp Debug startup
2012-12-23 18:18:19.2465 NinjaTrader.Strategy.LODHOD.OnStartUp Debug startup
2012-12-23 18:18:19.2465 NinjaTrader.Strategy.LODHOD.OnStartUp Debug startup
2012-12-23 18:18:19.2465 NinjaTrader.Strategy.LODHOD.OnStartUp Debug startup
2012-12-23 18:18:19.2465 NinjaTrader.Strategy.LODHOD.OnStartUp Debug startup
我的n日誌配置爲如下
/****CLASS LEVEL VARIABLES***/
// Step 1. Create configuration object
private static LoggingConfiguration config = new LoggingConfiguration();
private static FileTarget fileTarget = new FileTarget();
private static Logger logger = LogManager.GetCurrentClassLogger();
/*** END OF CLASS LEVEL VARIABLES ***/
/*************************NLOG CONFIG*****/
fileTarget.FileName =
"C:\\temp\\" + Instrument.FullName + "nLog." + DateTime.Now.Ticks + ".log";
fileTarget.Layout =
"${longdate} ${callsite} ${level} ${event-context:item=StrategyId} ${message}";
config.AddTarget("file", fileTarget);
// Step 4. Define rules
LoggingRule rule2 = new LoggingRule("*", NLog.LogLevel.Trace, fileTarget);
config.LoggingRules.Add(rule2);
// Step 5. Activate the configuration
LogManager.Configuration = config;
logger.Debug("startup");
/*************************NLOG CONFIG*****/
可以看到的Starup印刷6次,它是在Ninjatrader onStartup節目的開頭稱爲只在一次程序。
我也有範圍的全球Diagnistoc但我不認爲這會導致這種情況發生
public class ScopedGlobalContext : IDisposable
{
private string n;
private string v;
public ScopedGlobalContext(string name, string value)
{
n = name;
v = value;
NLog.GlobalDiagnosticsContext.Set(n, v);
}
public void Dispose()
{
NLog.GlobalDiagnosticsContext.Remove(n);
}
}
由於你的規則被稱爲規則2,你有多個? – ccellar
沒有。那就是我對nLog的所有代碼。我刪除了rule1但忘了重命名變量。我仍然不確定它爲什麼打印6次 – junkone
您是否在app.config或NLog.config中有任何NLog配置?你有沒有發佈你所有的NLog配置代碼?我看到你有一個變量,「配置」,它來自哪裏? – wageoghe