我有 4 个应用程序配置为登录同一文件 opus-event.log,并且所有应用程序都具有以下配置。
我面临的问题是每个应用程序都在 10 月 19 日登录原始文件(opus-event.log)以及备份文件,例如 opus-event.log2015-10-16 和 event.log2015-10-17。
<appender name="event" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="DEBUG"/>
<param name="file" value="${jboss.server.log.dir}/opus-event.log"/>
<param name="DatePattern" value="yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
请有人帮我知道这是什么问题?是否可以使用 log4j 配置来解决而不更改日志文件名?
最佳答案
您不能简单地从 4 个单独的应用程序登录到一个文件 - 需要有人来管理和同步对文件的写入。
可能的解决方案:
- 您可以使用多个文件(每个应用程序一个)
- 如果所有应用程序都在一个 JVM 中运行(例如应用程序服务器),您也许可以将它们配置为使用某种共享日志记录服务
- 将日志条目发送到日志记录服务 - 所有 4 个程序都会将其日志发送到记录器应用程序,该应用程序会将它们写入文件 - 请参阅 Syslog寻找灵感
关于java - Log4j 问题从不同应用程序登录同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33217178/