【发布时间】:2012-12-06 17:35:29
【问题描述】:
所以我使用 Common.Logging.Log4Net 进行日志记录,但由于代码是多线程的,因此经常会混淆消息,例如:
来自线程 1 的消息 来自线程 2 的消息 来自线程 1 的消息 来自线程 1 的消息 来自线程 2 的消息
为了避免这种情况,我们尝试将所有消息放在一起,并在执行完成时将它们全部打印出来。为此,我们基本上有一个 Action 委托列表,每个委托都包含日志行,例如:
Log.DebugFormat("Handling...");
但不幸的是,这并没有解决任何问题,因为当我们写回日志时,消息仍然混合在一起,因为我们所做的只是在列表上执行一个 foreach 并执行委托。那么有没有什么办法可以一次性把所有的消息都写好呢?
【问题讨论】: