3

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

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

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

我试过了DailyRollingFileAppender,但它没有按照我们期望的方式工作。

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

4

3 回答 3

2

是的,请检查此链接。它对此有支持。将此添加到 RollingFileAppender 配置。

<appender...>
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}**.gz**"/>
    </rollingPolicy>
</appender>
于 2012-05-15T09:47:26.327 回答
1

我不知道 log4j 是否支持这一点,但如果你转向 logback,你就有这种可能性。

http://logback.qos.ch/

哈乔

于 2012-05-15T09:09:37.720 回答
0

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

于 2012-05-15T09:36:22.733 回答