我的nLog布局如下所示
fileTarget.Layout = "${date} ${message}";
在我的代码中,我记录如下
logger.Info("ORDER UPDATE",order.Name,order.Instrument,order.OrderState);
但是它只记录第一个字符串 例如。
11/22/2012 22:37:16 ORDER UPDATE
11/22/2012 22:37:16 ORDER UPDATE
11/22/2012 22:37:16 ORDER UPDATE
11/22/2012 22:37:16 ORDER UPDATE
我很确定我在布局中遗漏了一些内容,但无法弄清楚如何修复它。有人可以指出我的错误吗?
答案 0 :(得分:2)
要保存所有字符串,首先应将它们连接起来。正如我所看到的,你的记录器只能识别第一个,因此你应该添加其他字符串,使它们成为一个字符串,因为你实际上记录的是一个字符串,而不是几个字符串。或者更新您的记录器以识别多个字符串,我的意思是这样的:fileTarget.Layout = "${date} ${message1} ${message2} ${message3} ${message4}";
答案 1 :(得分:2)
或者您可以使用string.Format
(即Console.WriteLine
)样式期待令牌替换,这可能是您打算使用的内容:
logger.Info("ORDER UPDATE: Name = {0}; Instrument = {1}; State = {2} ", order.Name, order.Instrument, order.OrderState);
而不是为每个Logger
请求假定相同数量的消息。
答案 2 :(得分:1)
你可以这样做:
Info("ORDER UPDATE: " + order.Name + ", " + order.Instrument + ", " + order.OrderState);