我正在使用Nlog記錄我的Ninjatrader策略。我希望能夠將策略ID作爲前綴添加到我的所有nLog消息中,以便我可以單獨篩選策略中與每個帳戶相關的條目。將變量作爲前綴添加到所有nLog消息
fileTarget.Layout = "${longdate} ${callsite} ${level} ${event-context:item=MyValue} ${message}";`
我目前的佈局如上。我嘗試使用event-context:item,但不知道如何打印所有消息的上下文項。
我試過如下
Logger log = LogManager.GetCurrentClassLogger();
LogEventInfo theEvent = new LogEventInfo(NLog.LogLevel.Debug, "", this.Account.Name);
logger.Log(theEvent);
但它結束了與打印在第一行Sim101,而不是在其他行的背景信息只有一條線。
2012-11-26 15:09:47.9777 NinjaTrader.Strategy.LODHOD.OnStartUp Debug Sim101
2012-11-26 15:09:48.3996 NinjaTrader.Strategy.LODHOD.OnBarUpdate Trace BAR UPDATE
2012-11-26 15:09:49.7902 NinjaTrader.Strategy.LODHOD.EntryOrders Info PLACED ENTRY ORDERS
如何在所有日誌行上打印Sim101?
這裏是我的完整問題: 我必須在每次調用跟蹤函數之前添加一個事件嗎?當我添加事件屬性並做一個logger.info(theEvent)時,它立即打印我的日誌的後綴。 例如2012年11月28日14:18:52.3277 NinjaTrader.Strategy.LODHOD.OnStartUp信息日誌事件:記錄器=''級別=信息消息='d4d0d3849c2440f5b41de65d744ede61'SequenceID = 270 然而,下一個logger.info沒有捕獲我的屬性 2012-11-28 14:18:52.9996 NinjaTrader.Strategy.LODHOD.OnBarUpdate信息BAR UPDATE 我使用的代碼在這裏。 http://codeviewer.org/view/code:2c95 – junkone
和我用的日誌是在這裏。 http://codeviewer.org/view/code:2c96 – junkone
您不必使用LogEventInfo類創建消息,並使用Log方法記錄它們。通常,大多數人不會。他們使用.Info,.Debug,.Trace等方法編寫他們的日誌代碼。我會在我的答案中添加一些例子。 – wageoghe