如何在一行中记录两条消息

时间:2015-02-12 12:18:04

标签: c# logging nlog

我希望NLog在日志文件中只为以下代码创建一行:

stopwatch = Stopwatch.StartNew()
log.Trace("Operation starting.")
StartOperation();
log.Trace("Finished. Elapsed time = {0} ms", stopwatch.ElapsedMilliseconds);

目前它产生两个日志行。 使用Console.Write,我可以通过编写:

来实现所需的结果
stopwatch = Stopwatch.StartNew()
Console.Write("Operation starting.")
StartOperation();
Console.WriteLine("Finished. Elapsed time = {0} ms",stopwatch.ElapsedMilliseconds);

但是对NLog记录器的任何调用都会在一个单独的行中写入每个新条目。

1 个答案:

答案 0 :(得分:1)

你做不到。记录器有一个任务:报告在给定时间发生的事情。操作的开始发生在时间x,而它在时间x + 10秒结束。此外,在这两次之间,还会发生很多其他事情。操作本身可以记录更多信息。其他任务可以记录信息。所有这些都应该连接起来吗?

如果你想连接这两行,请自己连接:

stopwatch = Stopwatch.StartNew()
string log = "Operation starting. ";
StartOperation();
log.Trace(log + "Operation starting. Finished. Elapsed time = {0} ms", stopwatch.ElapsedMilliseconds);

与:

相同
stopwatch = Stopwatch.StartNew()
StartOperation();
log.Trace("Operation starting. Operation starting. Finished. Elapsed time = {0} ms", stopwatch.ElapsedMilliseconds);

立即显示出如何"怪异的"这是......