java - Log4j 问题从不同应用程序登录同一文件

标签 java logging log4j

我有 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/

相关文章:

c# - 如何在 Visual Studio 2010 中查看调试输出?

python - 在带有 Connexion 的 Python Flask 应用程序中使用哪个记录器

java - 无法使用 log4j 打印到控制台

android - 隐藏 Ormlite 的调试日志

java - 为什么我的类路径最后只能使用冒号?

java - 如何解释这种看似不一致的 Java 可变参数行为?

java - Freemarker:创建一个表,其中包含列表中的列表

java - 如何用另一台控制红噪声发生器(火箭发动机效果-声音的减法合成)

java - JTA 与 PersistenceUnit

php - Apache 不记录 php 错误