【问题标题】:Compress Log4j files压缩 Log4j 文件
【发布时间】:2011-03-20 18:04:31
【问题描述】:

是否可以压缩日志文件(我通过 RollingFileAppender 进行)?

【问题讨论】:

  • 压缩是什么意思?简化?还是真的压缩,你必须解压?
  • 压缩(例如压缩)以存档

标签: java properties log4j


【解决方案1】:

log4j extras 对此提供支持。 只需将以下内容添加到您的 RollingFileAppender 配置中,并以 .gz 结尾的文件名即可自动压缩您的日志文件:

<appender...>
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
    </rollingPolicy>
</appender>

更多详情请查看Javadoc

【讨论】:

  • 如何将它添加到属性文件中? > log4j.appender.DefaultLog=org.apache.log4j.RollingFileAppender log4j.appender.DefaultLog.File=${mailbox.root}/logs/application.log log4j.appender.DefaultLog.MaxFileSize=50MB log4j.appender.DefaultLog.MaxBackupIndex=100 log4j.appender.DefaultLog.layout=org.apache.log4j.PatternLayout log4j.appender.DefaultLog.layout.ConversionPattern=%d %p [%c] - %m%n
  • 这是在 Java 中指定通配符以包含目录的方式,而 * 仅用于文件。
  • 请注意你必须使用org.apache.log4j.rolling.RollingFileAppender(来自log4j-extras),而不是org.apache.log4j.RollingFileAppender(来自log4j)!
  • @MiKu / 对于那些希望通过属性文件进行配置的人,请查看stackoverflow.com/a/6037141/885922
【解决方案2】:

我知道这并不能完全回答您的问题,但它确实提出了替代解决方案。

我们处理这个问题的方法是在一天结束时运行一个批处理,将之前的所有日志文件压缩到今天的日期,删除一周之前的所有文件,然后将它们复制到另一个文件服务器。这样,应用程序不需要消耗任何 CPU 周期来执行此操作,并且在服务器上我们有不超过一周的日志,而在另一个文件服务器上我们有更旧的日志文件。

【讨论】:

    【解决方案3】:

    我看到的唯一另一件事是将 log4j 升级到 1.3.15/1.4 以上并使用 TimeBasedRollingPolicy 滚轮启用自动压缩,但这需要从本质上升级 log4j(以及应用程序的兼容性)

    Hmmm.. 另一个更好的办法是让 log4j 在文件滚动后执行命令。因此,除了 gzip,我可以使用其他一些压缩逻辑,如 bzip 或 lzop 等。如果我今天在 log4j 中使用此功能,那将是另一种方法。

    【讨论】:

      【解决方案4】:

      试试 Log4j v2.x

      我得到了这个很好的答案,但随后继续调查了一下,log4j 2 出来了!

      现在您可以使用基本库进行压缩,还有更多……太棒了!

      RollingFileAppender - 我正在寻找同时具有 timeBased 和 sizeBased 滚动的东西,并且具有压缩功能......它两者都有!我可以删除我的 syslog4j 库,因为这个也有!

      请不要使用 log4j 1.2 + extras,除非你真的必须这样做。

      【讨论】:

      • 我同意。我们现在在 log4j 2 中拥有它的标准真是太棒了,但截至本文发表时,log4j 2 处于测试阶段。我仍然鼓励任何可以使用测试版并在它发布之前帮助改进它的人。
      • 是的,测试版原定于 6 月结束,但仍在进行中……可惜。它对我来说效果很好,但政策规定生产中没有测试版代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 2010-09-05
      • 2019-02-24
      • 1970-01-01
      • 2010-12-14
      • 2013-03-09
      相关资源
      最近更新 更多