问题描述
我有我的应用程序,该应用程序在 log4j 属性文件中完成.基于大小的滚动不适用于此应用程序. 文件不会在5 MB处滚动,并且该应用程序会继续记录并在GB中制作.在一项运行中,生成了大约6 MB的日志.该应用程序每天多次运行.
有人可以帮助指出我在哪里做错吗?
# SampleApp configuration log4j.category.com.ibm.hmel.hwmmphdya=INFO, SampleApp log4j.additivity.com.ibm.hmel.hwmmphdya=false log4j.appender.SampleApp =org.apache.log4j.rolling.RollingFileAppender log4j.appender.SampleApp.File=S:/FIH/LOG/SAMPLE_APP_01/SAMPLE_APP_01.log log4j.appender.SampleApp.layout=org.apache.log4j.PatternLayout log4j.appender.SampleApp.layout.ConversionPattern=%-21d{dd-MMM-yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n log4j.appender.SampleApp.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy log4j.appender.SampleApp.RollingPolicy.FileNamePattern=S:/HIF/LOG/SAMPLE_APP_01 /SAMPLE_APP_01.log.%i.zip log4j.appender.SampleApp.RollingPolicy.MinIndex=1 log4j.appender.SampleApp.RollingPolicy.MaxIndex=10 log4j.appender.SampleApp.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy log4j.appender.SampleApp.TriggeringPolicy.MaxFileSize=5242880
推荐答案
以下对我的工作
log4j.rootLogger=TRACE, Roller log4j.appender.Roller=org.apache.log4j.rolling.RollingFileAppender log4j.appender.Roller.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy log4j.appender.Roller.RollingPolicy.maxIndex=13 log4j.appender.Roller.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy log4j.appender.Roller.TriggeringPolicy.MaxFileSize=26214400 log4j.appender.Roller.RollingPolicy.FileNamePattern=j_log_%i.log log4j.appender.Roller.RollingPolicy.ActiveFileName=j_log_0.log log4j.appender.Roller.layout=org.apache.log4j.PatternLayout log4j.appender.Roller.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
其他推荐答案
尝试将单元添加到您的尺寸
MaxFileSize=5242880KB
其他推荐答案
我可以看到您正在使用LO4J Companion Extras. 请确保您正在使用最新的log4j.jar(版本1.2.17为我工作,我遇到了1.2.14版的问题).
我写了简单的测试应用程序来重现您的问题:
package com.ibm.hmel.hwmmphdya; import org.apache.log4j.Logger; public class Roller { private Logger logger = Logger.getLogger(Roller.class); private final String FAKE_LOG_LINE = "12345678901234567890123456789012345678901234567890"; public static void main(String[] args) { Roller roller = new Roller(); roller.logStuff(); } private void logStuff() { for (;;) { // ugly loop logger.info(FAKE_LOG_LINE); } } }
并在classpath中放置log4j.properties:
log4j.category.com.ibm.hmel.hwmmphdya=INFO, Roller log4j.additivity.com.ibm.hmel.hwmmphdya=false log4j.appender.Roller=org.apache.log4j.rolling.RollingFileAppender log4j.appender.Roller.File=D:/FIH/SAMPLE_APP_01.log log4j.appender.Roller.layout=org.apache.log4j.PatternLayout log4j.appender.Roller.layout.ConversionPattern=%-21d{dd-MMM-yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n log4j.appender.Roller.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy log4j.appender.Roller.RollingPolicy.FileNamePattern=D:/FIH/SAMPLE_APP_01.log.%i.zip log4j.appender.Roller.RollingPolicy.MinIndex=1 log4j.appender.Roller.RollingPolicy.MaxIndex=10 log4j.appender.Roller.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy log4j.appender.Roller.TriggeringPolicy.MaxFileSize=5242880
我认为我的结果还可以,这些是我的日志输出目录的内容:
2013-02-27 09:30 <DIR> . 2013-02-27 09:30 <DIR> .. 2013-02-27 09:30 4 440 720 SAMPLE_APP_01.log 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.1.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.2.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.3.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.4.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.5.zip
文件大小" 5 242 920"或多或少是配置的.
您可以通过提供-Dlog4j.debug系统属性来进一步解决案件.
更新: 您可能需要确保classPath中存在伴侣Extras lib(apache-log4j-extras-1.1.jar).
问题描述
I have my application for which the below entry is done in Log4j properties file.Size based rolling is not working for this application. File does not rollover at 5 MB and the application keeps on logging and making it in GB. In one run approximately 6 MB of log is generated.The application runs multiple times a day.
Can someone help in pointing out where I am doing a mistake?
# SampleApp configuration log4j.category.com.ibm.hmel.hwmmphdya=INFO, SampleApp log4j.additivity.com.ibm.hmel.hwmmphdya=false log4j.appender.SampleApp =org.apache.log4j.rolling.RollingFileAppender log4j.appender.SampleApp.File=S:/FIH/LOG/SAMPLE_APP_01/SAMPLE_APP_01.log log4j.appender.SampleApp.layout=org.apache.log4j.PatternLayout log4j.appender.SampleApp.layout.ConversionPattern=%-21d{dd-MMM-yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n log4j.appender.SampleApp.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy log4j.appender.SampleApp.RollingPolicy.FileNamePattern=S:/HIF/LOG/SAMPLE_APP_01 /SAMPLE_APP_01.log.%i.zip log4j.appender.SampleApp.RollingPolicy.MinIndex=1 log4j.appender.SampleApp.RollingPolicy.MaxIndex=10 log4j.appender.SampleApp.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy log4j.appender.SampleApp.TriggeringPolicy.MaxFileSize=5242880
推荐答案
Following works for me
log4j.rootLogger=TRACE, Roller log4j.appender.Roller=org.apache.log4j.rolling.RollingFileAppender log4j.appender.Roller.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy log4j.appender.Roller.RollingPolicy.maxIndex=13 log4j.appender.Roller.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy log4j.appender.Roller.TriggeringPolicy.MaxFileSize=26214400 log4j.appender.Roller.RollingPolicy.FileNamePattern=j_log_%i.log log4j.appender.Roller.RollingPolicy.ActiveFileName=j_log_0.log log4j.appender.Roller.layout=org.apache.log4j.PatternLayout log4j.appender.Roller.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
其他推荐答案
Try adding a unit to your size
MaxFileSize=5242880KB
其他推荐答案
As i can see you're using lo4j companion extras. Please ensure you're using latest log4j.jar (version 1.2.17 worked for me and I've encountered problems with version 1.2.14).
I wrote simple test app to reproduce your problem:
package com.ibm.hmel.hwmmphdya; import org.apache.log4j.Logger; public class Roller { private Logger logger = Logger.getLogger(Roller.class); private final String FAKE_LOG_LINE = "12345678901234567890123456789012345678901234567890"; public static void main(String[] args) { Roller roller = new Roller(); roller.logStuff(); } private void logStuff() { for (;;) { // ugly loop logger.info(FAKE_LOG_LINE); } } }
and placed following log4j.properties in classpath:
log4j.category.com.ibm.hmel.hwmmphdya=INFO, Roller log4j.additivity.com.ibm.hmel.hwmmphdya=false log4j.appender.Roller=org.apache.log4j.rolling.RollingFileAppender log4j.appender.Roller.File=D:/FIH/SAMPLE_APP_01.log log4j.appender.Roller.layout=org.apache.log4j.PatternLayout log4j.appender.Roller.layout.ConversionPattern=%-21d{dd-MMM-yyyy HH:mm:ss} [%t] %-5p %c %x - %m%n log4j.appender.Roller.RollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy log4j.appender.Roller.RollingPolicy.FileNamePattern=D:/FIH/SAMPLE_APP_01.log.%i.zip log4j.appender.Roller.RollingPolicy.MinIndex=1 log4j.appender.Roller.RollingPolicy.MaxIndex=10 log4j.appender.Roller.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy log4j.appender.Roller.TriggeringPolicy.MaxFileSize=5242880
My results are OK i think, theese are contents of my log output directory:
2013-02-27 09:30 <DIR> . 2013-02-27 09:30 <DIR> .. 2013-02-27 09:30 4 440 720 SAMPLE_APP_01.log 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.1.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.2.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.3.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.4.zip 2013-02-27 09:30 5 242 920 SAMPLE_APP_01.log.5.zip
File size "5 242 920" is more or less what was configured.
You can troubleshoot your case further by providing -Dlog4j.debug system property.
UPDATE: You may want to ensure companion extras lib (apache-log4j-extras-1.1.jar) is present in classpath.