当前位置: 首页 > 知识库问答 >
问题:

使用RollingFileAppender、maxsize、maxbackupindex和close时出现的Log4j问题

孙帅
2023-03-14

我使用了rollingfileappender和logger类将日志打印到一个文件中,但我没有单独的配置文件。

public void logBIHAuditMessage(String message, Level level, String Location) {

    try {
        RollingFileAppender fileAppender = new RollingFileAppender(new PatternLayout(
                "%d{DATE} %p %M %m %n"), "C:\\Logfiles\\Audit.log", true);

        fileAppender.setMaxFileSize("5MB");
        fileAppender.setMaxBackupIndex(5);
        fileAppender.activateOptions();
        LOG.addAppender(fileAppender);
        LOG.info(message);
        fileAppender.close();

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

在Apache camel应用程序中,从多个位置调用LogBiHauditMessage

由于使用FileAppender.Close();,我收到以下错误

10:36:39,715错误[stderr](Camel(camel-9)线程#20-JMSConsumer[BIH_A1_Req_INHQ])log4j:试图追加到名为[null]的已关闭追加器时出错。

如果我没有关闭文件附加器,那么同一日志将被打印多次。

如果我不使用synchronized关键字,也有一些日志被打印多次,你能告诉我什么可能是问题吗?

共有1个答案

蓝侯林
2023-03-14

log4j中有两个log4j.properties可用。

您在类路径中保留一个,而正在加载的另一个可以通过编程方式使用PropertyConfigurator.Configure(..))。您可以删除其中的任何一个。

或者,您可以通过以下代码重写它。

BasicConfigurator.resetConfiguration();
PropertyConfigurator.configure(props);
 类似资料:
  • 我需要控制日志框架的最大磁盘空间量。 例如,在log4j中,如果有如下所示的追加器,我可以很容易地估计需要多少磁盘空间: 对于maxFileSize和maxBackupIndex,我知道最多需要10x100KB。 我注意到DailyRollingFileAppender,但它不支持maxFileSize。 除了RollingFileAppender之外,是否还有其他fileappender可以实现

  • 我使用log4j RollingFileAppender根据文件大小滚动日志文件。我们设置的最大文件大小是"10 MB"。它在tomcat 6中运行良好,但是当我们迁移到TomEE Plus时...日志文件滚动不会发生...文件大小继续增长。 log4j配置如下:

  • 下面的方法已经使用了一段时间,当时我正在处理的系统有log4j。现在我们正在从Log4j转移到Log4j2,我会遇到编译问题。 Log4j2 jar:log4j-api-2.12.1.jar,log4j-core-2.12.1.jar 有没有人可以提供一些帮助,以解决上述问题的正确方法是什么?

  • 我在Webphere应用服务器中托管了网络应用程序。它使用log4j版本1.2.15进行日志记录,下面是我的log4j配置。日志文件不会在达到阈值时立即旋转,尽管log4j调试器说重命名为新文件。但是相同的配置在另一个环境中工作正常。请注意,JVM的单个实例只在我的两个服务器环境中运行。所以不可能通过不同的JVM锁定相同的日志文件。 log4j。属性 system.out日志

  • 在迁移到log4j2的过程中,我已经将tomcatweb应用程序配置为使用log4j1。x桥。我在这里遵循了迁移指南:https://logging.apache.org/log4j/2.x/manual/migration.html 我继续使用我现有的log4j。如下所示的属性文件: 这成功地创建了我的日志文件,并以10KB的速度滚动。 我有一个无法解释的问题。以下是我的日志目录中的文件: 我得

  • 我正在用Log4j 2.6.2测试Log4j RollingFileAppender。 我希望每分钟旋转一次日志,因此我有一个log4j2.xml,与这里的一个示例https://logging.apache.org/log4j/2.x/manual/appenders.html#rollingfileappender非常相似。这是我的log4j2.xml 这是一个我每秒钟写一个日志的应用程序。