文件大小超过2MB后,log4j能否压缩日志文件

时间:2011-05-16 18:30:54

标签: java cron log4j

我想要的是:就像Glassfish 3服务器日志一样,如果日志文件传递一定的文件大小(如2MB),日志文件会自动压缩自己,这样日志文件就不会变得太大。我不确定这是通过log api还是cron api完成的。是否可以使用log4j获取我上面描述的内容,或者这里涉及某种类型的cron进程?这是我的log4j

的属性文件
log4j.rootLogger=DEBUG, LOG , stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d{d/MM/yy HH:mm:ss}:%m%n
# log4j.appender.LOG.Threshold=INFO

log4j.appender.LOG=org.apache.log4j.RollingFileAppender
log4j.appender.LOG.File=C:\\dev\\harry\\data\\logs\\core.log
log4j.appender.LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG.Append=true
log4j.appender.LOG.layout.ConversionPattern=%5p %d{d/MM/yy HH:mm:ss}:%m%n
# log4j.appender.LOG.Threshold=INFO

2 个答案:

答案 0 :(得分:2)

在log4j extras项目log4j extras project中,可以使用许多有用的appender。特别是使用RollingFileAppender配置的TimeBasedRollingPolicy可以自动压缩滚动文件。我不知道SizeBasedTriggeringPolicy是否也这样做,而且文档很简陋。

我认为构建一个自定义的RollingPolicy是SizeBased并压缩输出很容易,因为Log4j extras项目中存在所有成分(甚至压缩文件)。它基本上与TimeBased策略的代码相同,实现isTriggeringEvent方法与SizeBased策略相同。

或类似的东西。

答案 1 :(得分:1)

基本上为了克服日志文件的大小限制,我们习惯于创建appender 如果大小限制超出最大大小,则记录日志文件 请查看以下文章Rolling file appenders