【发布时间】:2016-09-07 08:18:55
【问题描述】:
我确实有 2 个并行线程,它们使用 log4net 文件附加程序使用这种模式写入同一个 logFile:
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{HH:mm:ss} %-5level - %message%newline" />
</layout>
问题是一旦我添加了一个条目日志,例如:
_log.Info("Something to log");
我会从线程 A 和 B 中找到包含非有序条目的日志。我想要的是:
Log File:
+ Log 1 Thread A
+ Log 2 Thread A
+ Log 3 Thread A
+ Log 1 Thread B
+ Log 2 Thread B
...等等
我怎样才能做到这一点? Log4Net 中有什么东西可以实现这一点吗?我先教了如何将日志保存在内存中,然后在线程完成后刷新它,但是如果进程被杀死不是一个好主意,所有条目都会丢失。
如有任何帮助,我们将不胜感激。
谢谢
【问题讨论】:
-
日志记录通常按时间戳排序。您可以创建 2 个单独的日志文件。或者更好:登录到数据库。然后,您可以应用您喜欢的任何过滤器/分组/排序顺序。
-
您好 Stefan,感谢您的回复。目前每个线程都是一个进程,使用一个日志文件是有限制的。如果每个线程在同一时间记录到同一个文件,它会很混乱,根本不可读。
标签: c# multithreading log4net