Log4j dailyrollingfileappender文件问题

raj*_*esh 5 java log4j

我们遇到了一个特殊的问题.场景:我们有3台服务器,它们有一个组件的多个实例都将事务日志写入单个日志文件.我们使用log4j,服务器在Java 1.3中运行.setAppend()传递true,实现是DailyRollingFileAppender

问题:在午夜,我们期望当前日志文件以新文件名翻转并开始写入新文件.这在我们的测试设置(单服务器写日志)中运行良好.在生产中,午夜时分,新文件将被创建,新文件将被写入,但滚动文件将被删除

任何帮助将受到高度赞赏,因为它已经过了几天,我们无法获得任何问题的线索.

MaD*_*aDa 5

不应该从多个进程登录到同一个文件。Log4j 确实是线程安全的,但如果我可以这么说的话,它不是进程安全的;它不能作为不同 java 进程之间的共享库。嵌入一​​个 Java 应用程序中的 Log4j 不了解任何其他应用程序。

通过翻转,它会导致您刚刚发现的问题:所有进程都运行自己的翻转代码,盲目地覆盖以前的内容(因为它们都不希望有任何内容)。

这里可能的解决方案:Log4j Logging to a Shared Log File