我希望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记录器的任何调用都会在一个单独的行中写入每个新条目。
答案 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);
立即显示出如何"怪异的"这是......