所以我使用Common.Logging.Log4Net进行日志记录,但由于代码是多线程的,因此消息通常会混淆,例如:
来自线程1的消息 来自线程2的消息 来自线程1的消息 来自线程1的消息 来自帖子2的消息
为了避免这种情况,我们尝试将所有消息放在一起,并在执行完成时将它们全部打印出来。为此,我们基本上有一个Action委托列表,每个委托都包含日志行,例如:
Log.DebugFormat("Handling...");
但遗憾的是,这并没有解决任何问题,因为当我们回写日志时,消息仍然混合在一起,因为我们所做的只是列表中的foreach并执行委托。那么有什么方法可以立即写入所有消息吗?
答案 0 :(得分:1)
听起来你正在寻找某种事务记录。本质上,应用程序日志记录是顺序的。
我可以想到的几个选项: