为多线程排序日志条目
本文关键字:日志 排序 多线程 | 更新日期: 2023-09-27 18:05:54
我确实有两个并行线程,使用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个进程,你可以添加一个缓冲区向前追加器。下面的示例展示了如何配置BufferingForwardingAppender,以便在将100条消息传递给ConsoleAppender之前缓冲它们。
<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
<bufferSize value="100"/>
<appender-ref ref="ConsoleAppender" />
</appender>
消息部分按BufferSize块排序