是否可以从5个不同进程写入同一个日志文件?Log4Net从多个进程写入文件
我正在使用Log4Net进行日志记录,但似乎只有一个进程正在写入文件,当我关闭此进程时,第二个进程正在写入。
我想大家一起写。
如何?
是否可以从5个不同进程写入同一个日志文件?Log4Net从多个进程写入文件
我正在使用Log4Net进行日志记录,但似乎只有一个进程正在写入文件,当我关闭此进程时,第二个进程正在写入。
我想大家一起写。
如何?
如果你想要写从多个进程的单个文件中添加MinimalLock
作为LockinModel
您<appender>
节点:
<appender .... >
......
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
......
</appender>
当心这会对性能产生一定的影响。
虽然@ Erwin的建议在大多数情况下都适用,但您应该重新考虑更好的架构是否有助于提高性能。
例如,Microsoft IIS服务器有许多工作进程正在运行,每个工作进程都通过命名管道向IIS服务进程发送日志条目。并且只有IIS服务进程才有权写入日志文件。通过这种方式,工作进程不需要锁定日志文件,服务进程可以缓存条目并批量写入。
这是很容易遵循IIS的方法,并取得良好的表现。没有文件锁。
(更新:现在可以使用LogMaster4Net,它实现了基于UDP的这种架构。)