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



我希望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记录器的调用都会在单独的一行中写入每个新条目。

您不能。记录器有一项任务:报告在某个给定时间发生的事情。操作的开始时间为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);

这立即表明;怪异的";这是…

最新更新