【问题标题】:Log4J RollingFileAppender not enforcing max log sizeLog4J RollingFileAppender 不强制最大日志大小
【发布时间】:2014-08-27 15:04:53
【问题描述】:

我正在使用 Log4j 作为我们的日志记录解决方案。遇到的问题是 RollingFileAppender 在所有环境中的行为不一致。

配置代码:

        try {
            RollingFileAppender a = new RollingFileAppender( layout, s_file, true ) ;
            a.setName( "RollingFileAppender" ) ;
            a.setMaxFileSize( "1MB" ) ;
            a.setMaxBackupIndex( 32 ) ;
            a.setImmediateFlush( true ) ;
            a.setBufferedIO( false ) ;
            a.setBufferSize( 1024 ) ;
            s_Logger.addAppender( a ) ;
        } catch( IOException ioe ) {
            ioe.printStackTrace() ;
        }

问题在于,在开发环境和所有测试环境中,文件大小按预期限制为 ~1024kb。在生产环境中,该文件已经超过 500mb。

这部署在所有实例的 Tomcat 7.0.52 环境中。 是否有 Tomcat 配置会干扰 Log4j 处理其文件的方式?

文件夹权限在所有实例中都匹配。

【问题讨论】:

  • 你在使用log4j.properties文件吗?
  • 不,log4j.properties 没有被使用。

标签: java tomcat logging log4j


【解决方案1】:

设置值后尝试在 RollingFileAppender 上调用activateOptions(),例如:

...
a.setBufferSize( 1024 ) ;
a.activateOptions() ;  // Call it here
s_Logger.addAppender( a ) ;
....

【讨论】:

  • 谢谢,我们已经解决了这个问题,但没有找到真正的原因,但如果问题重复出现,我会考虑实施这个解决方案。
【解决方案2】:

解决办法是关闭tomcat实例,删除大日志文件并重启服务器。它现在按预期生成 1mb 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多