多个java进程如何共享一个滚动日志文件

时间:2017-03-24 19:00:59

标签: java concurrency command-line-interface slf4j log4j2

我有一个java CLI程序,它使用带有log4j2的SLF4J和一个用于记录的滚动文件appender。当多个进程正在运行时,在文件翻转时似乎存在问题。无法移动和/或删除该文件,并将错误打印到stdout。有一些技巧可以使用具有多个进程的单个日志文件吗?我们是否需要为每个进程使用一个文件?我刚刚意识到这是我第一次尝试这样做,因为我们过去曾使用过守护进程。

1 个答案:

答案 0 :(得分:0)

根据https://issues.apache.org/jira/browse/LOG4J2-174,它是RollingFileAppender的一个已知限制。 FileAppender没有这个问题。我们的解决方案是使用FileAppender为每个进程创建一个UUID,每个进程有一个日志文件。