当前位置: 首页 > 知识库问答 >
问题:

如何配置log4j只保留最近n天的日志文件?

洪高刚
2023-03-14

我的名字是Luis Ribeiro和我正在尝试设置log4j,以便它将删除旧的旋转日志。

  1. 使用数百台机器(n)
  2. 在多台计算机中使用多个cron(n*m)
  3. 工作于不同结构和OS(n*m*z)
  4. 即使应用程序停止并且信息丢失,cron也会删除

理想的情况是,当应用程序运行时,log4j将负责完成日志循环。

  • 它将每天循环一次:rollingfile:Daily and filePattern=“logs/${filename}.[%d{yyyy-MM-dd}-%i any type of counter].log.gz”with TimeBasedTriggeringPolicy
  • 保留实际日志和n个循环文件。已删除旧版本:app.log,app.{-1天}.log.gz,...,app.{-n天}.log.gz
  • 模式名不重要它可以是文件名中的数字
  • 我们不能使用大小作为触发器。我们不知道节目在白天会有多大作用。日志大小变化非常非常大
  • 它应该与结构和操作系统无关。我们更喜欢增强log4j属性或XMl文件,而不是添加脚本和cron触发器。

我尝试使用带有TimeBasedTriggeringPolicy的DefaultRolloverStrategy。但问题是:

  1. 文件页数=${filename}.%d{yyyy-MM-dd}-%i.log.gz将得到:app.log,app.{-1天}-1.log.gz,app.{-2天}-1.log.gz,...,app.{-(n+1)天}-1.log.gz,...=>永远不会删除
  2. filePattern=${filename}-%i.log.gz java.lang.IllegalStateException结果:模式不包含日期

有没有什么方法可以增强log4j,使它能够处理所有这些任务?

向你致以最良好的问候,路易斯

共有1个答案

乐正意智
2023-03-14

因为DailyRollingFileAppender没有属性MaxBackupIndex,所以必须自己删除log。

也可以执行crontab来进行室内清理,如:

find /path/to/logs -type f -mtime +dayToKeep -exec rm -f {} \;
 类似资料:
  • 问题内容: 对于用于记录的几个Java应用程序,我遇到以下记录问题: 我希望日志文件每天轮换,例如 但是出于数据安全的原因,我们不允许将日志文件在我公司中保留超过7天。因此,下一个下一个日志文件的生成应触发的删除。是否可以使用来配置这种行为?如果没有,您是否知道针对此类日志记录问题的另一种优雅的解决方案? 问题答案: 您可以使用单独的脚本执行家政服务,该脚本可以每天运行。像这样:

  • 本文向大家介绍Python批量删除只保留最近几天table的代码实例,包括了Python批量删除只保留最近几天table的代码实例的使用技巧和注意事项,需要的朋友参考一下 Python批量删除table,只保留最近几天的table 代码如下: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对呐喊教程的支持。如果你想了解更多相关内容请查看下面相

  • 问题内容: 我还找不到关于如何使用Log4j的XML样式配置文件配置Hibernate日志记录的任何文档。 这是否有可能,或者我是否使用属性样式配置文件来控制Hibernate的日志记录? 如果有人有任何信息或文档链接,我们将不胜感激。 编辑: 只是为了澄清,我正在寻找控制Hibernate的实际XML语法的示例。 EDIT2: 这是我的XML配置文件中的内容。 日志记录工作正常,但是我正在寻找一

  • 对于一些人来说,这可能是一个非常简单的问题,但就我个人而言,Log4j配置非常困难,学习执行脑部手术可能没有那么困难。 我正试图让多个日志记录者登录到不同的文件。这是我的log4j中的内容。属性文件: 这是我的(非常简单的)Java应用程序用于测试配置: 我有两个问题: 有一个问题,我总是在

  • 我现在的问题是,如果我想完全禁用FileAppender,我不知道怎么做。如果我向FileAppender添加一个DenyAllFilter,它将阻止任何内容写入文件,但文件仍然被创建。如果从根记录器中删除FileAppender,则将Log4J写入stderr: 如果我将根级别设置为OFF,则我将自定义调试级别设置为仍然输出的各个记录器。 如果我将LoggerRepository级别设置为OFF

  • 问题内容: 我有一个日志文件,其中添加了以下附加程序: 事实是,每次我运行我的应用程序时,其他日志记录信息都会附加到同一日志文件中。每次我该怎么做才能覆盖文件? 问题答案: 使用RollingFileAppender。