【问题标题】:How to avoid losing logs with log4j如何避免使用 log4j 丢失日志
【发布时间】:2012-08-07 07:45:54
【问题描述】:

我有这种情况。

我们有一个日志归档脚本,可以归档 8 天以前的日志。我们希望确保在存档之前不会丢失任何日志。

我已将 maxBackupIndex 设置为 10 并将 maxFileSize 设置为 10MB。如果我在 8 天内收到更多事务,占用超过 100MB 的日志,那么我可能会丢失一些日志。

如何避免这种情况?我可以将maxBackupIndex 设置为无穷大吗?

在此先感谢您对此问题的任何帮助。

【问题讨论】:

  • 抱歉,这是我的一个特别痛点。这个词是“失去”,而不是“失去”。我会解决这个问题,以及人们不将人称代词大写的令人恼火的习惯(它是“我”,而不是“我”)。以后请多多关照:-)
  • @paxdiablo:好点,输/输的错误我也觉得很烦人。

标签: java logging log4j


【解决方案1】:

将 maxBackupIndex 和 maxFileSize 设置为足够高的数字,以允许保留合理的工作负载,但又不会高到导致超出磁盘空间的程度。

然后创建一个外部任务(cron 或 windows 计划任务)来删除/归档超过 8 天的日志。

【讨论】:

    【解决方案2】:

    如果您无法保留日志,您还可以使用脚本来压缩一天之前的文件。

    maxFileSize 是一个int。您可以将其设置为 1000000000 或任何会占用过多磁盘空间的值。您还可以将maxFileSize 增加到 100MB 或 1GB。

    【讨论】:

    • 但是当文件变大时,无法在任何编辑器中打开。所以制作大文件没有意义。
    • 我使用lessvi,它可以处理1-3 GB的文本文件。我想看看您的编辑器是否可以处理大于 10 MB 的文件,这些文件现在这么大。
    • 我用notepad++打开一个100MB的文本文件用了2秒,一个200MB的文本文件用了12秒。
    • 不要 log4.j 有这样的解决方案。它每天轮换原木。说最大文件大小为100MB。假设有一天会生成 150MB 大小的日志。在这种情况下,它将创建 2 个日志文件作为 logfilename.today.checksum logfilename.today.checsum。基于 checsum 它每天可以创建许多文件。但如果它每天获得 90MB 的日志,那么它只需要创建 logfilename.today 文件。
    • 这听起来更易于管理。较少的日志文件通常更容易使用恕我直言。
    猜你喜欢
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多