我有2个并行线程使用这个模式使用log4net文件appender写入同一个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中有什么东西可以实现吗?我首先教会将日志保存在内存中,然后在线程完成后将其刷新,但如果进程被终止,则所有条目都将丢失,这不是一个好主意。
请提供任何帮助。
谢谢
答案 0 :(得分:0)
看来因为你正在运行2个进程,你可以添加一个缓冲区前向追加器。以下示例显示如何配置BufferingForwardingAppender以在将消息传递到ConsoleAppender之前缓冲100条消息。
<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
<bufferSize value="100"/>
<appender-ref ref="ConsoleAppender" />
</appender>
消息部分按BufferSize的块排序。