Log4J RollingFileAppender未强制执行最大日志大小

时间:2014-08-27 15:04:53

标签: java tomcat logging log4j

我正在使用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环境中部署的。 是否存在会干扰Log4j处理文件的Tomcat配置?

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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