两个log4j文件夹可以写入同一个文件吗?
答
它不直接回答你的问题,但LOG4 *净*的FileAppender具有您可以设置当文件实际上是在使用中只锁定LockingModel属性。所以如果你有两个FileAppender在MinimalLock设置的同一线程中工作,它可能会工作得很好。在不同的线程中,你偶尔会遇到死锁。
FileAppender通过LockingModel属性支持可插入文件锁定模型。由FileAppender.ExclusiveLock实现的默认行为是在文件关闭之前获取文件的独占写入锁定。替代模型FileAppender.MinimalLock仅在appender正在写入日志事件时保存写入锁定。
粗略的网页搜索没有找到关于在log4j中实现MinimalLock的任何有用的结果。
答
Log4j的FileAppender不允许两个JVM写入同一个文件。如果你尝试,你会得到一个损坏的日志文件。然而,logback的后继log4j的后继,在prudent mode中允许两个appender甚至在不同的JVM中写入同一个文件。
答
如何让多个进程记录到同一个文件?
您可能会将每个进程日志记录到SocketAppender。接收的SocketServer(或SimpleSocketServer)可接收全部事件,并将它们发送到一个日志文件。
至于这究竟意味着我会调查自己。
我还发现了以下解决方法上的另一个SO question:
你试过了吗? – 2009-08-10 07:57:34
不,我只是好奇。 – ripper234 2009-08-10 08:09:05