我如何格式化我的nLog布局

时间:2012-11-23 04:03:14

标签: c# nlog

我的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

我很确定我在布局中遗漏了一些内容,但无法弄清楚如何修复它。有人可以指出我的错误吗?

3 个答案:

答案 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);