【问题标题】:Can log4j compress a log file after file size pass 2MBlog4j 可以在文件大小通过 2MB 后压缩日志文件
【发布时间】:2011-05-17 03:04:50
【问题描述】:

我想要的是:就像 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

【问题讨论】:

  • 能否请您发布实现您的要求的方式,面临类似的要求...谢谢。

标签: java cron log4j


【解决方案1】:

在 log4j extras 项目log4j extras project 中有许多有用的附加程序可以使用。特别是用RollingFileAppender配置的TimeBasedRollingPolicy可以自动压缩滚动文件。我不知道SizeBasedTriggeringPolicy 是不是也这样,而且文档很稀少。

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

或者类似的东西。

【讨论】:

    【解决方案2】:

    基本上是为了克服日志文件的大小限制,我们曾经创建appender 如果大小限制增加到超过最大大小,则记录文件。 请查看下方文章Rolling file appenders

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 2015-06-04
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      相关资源
      最近更新 更多