【问题标题】:Log rotation with compression带压缩的日志旋转
【发布时间】:2012-05-15 09:05:16
【问题描述】:

我们在 Linux 服务器上部署了非常古老的应用程序。我们正在使用RollingFileAppender,由于磁盘空间问题,它正在删除旧日志。

每当我们在应用程序中遇到问题时,大多数日志都不会在磁盘中可用。如果我们压缩日志文件,我们可以保留 100 个日志文件来代替一个未压缩的日志文件。

有没有办法在日志文件填满后压缩文件并在某个时间点后删除它们[比如说一周。]

我尝试使用 DailyRollingFileAppender,但它没有按我们预期的方式工作。

最大日志限制为 500。但应用程序每小时创建 200 个日志。我们可能无法获得包含错误消息的实际日志。因此,我们计划将所有日志文件压缩并在一周后将其删除。

【问题讨论】:

  • 让shell脚本每晚压缩日志,然后将它们移动到辅助存储设备
  • “它没有按照我们预期的方式工作”...所以告诉我们您期待什么,以及DailyRollingFileAppender 与此有何不同。

标签: java logging log4j


【解决方案1】:

是的,请查看link。它对此有支持。 将此添加到 RollingFileAppender 配置中。

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

【讨论】:

    【解决方案2】:

    我不知道 log4j 是否支持这个,但是如果你移动到 logback 你有这个可能性。

    http://logback.qos.ch/

    哈乔

    【讨论】:

      【解决方案3】:

      是的,shell 脚本或 cron http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5 可以很容易地解决您的问题

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 2022-01-22
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      相关资源
      最近更新 更多