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

log4j2定期清理日志文件

庄文栋
2023-03-14

我使用log4j2来记录我的程序。在我的xml配置文件中,我有这个附件:

<RollingFile name="General" fileName="log/logs/giornale.log" filePattern="log/logs/log-%d{yyyyMMdd}.log">
    <PatternLayout>
        <Pattern>%d{HH:mm:ss,SSS} [%t] %-5level %logger{-1} - %msg%n</Pattern>
    </PatternLayout>
    <Policies>
        <TimeBasedTriggeringPolicy />
    </Policies>
</RollingFile>

我需要的是一种配置它的方法,这样它就会自动删除所有超过n天的文件
我已经找到了一些这样的问题,但是它们没有帮助,因为它们没有说如何通过xml配置来完成它。
要使简短地说,我应该在上面的片段中指示像“MaxBackupIndex”这样的参数吗?或者我应该使用哪个其他参数(我可以把它放在哪里)?

共有2个答案

郑松
2023-03-14

您可以将DefaultRolloverStrategy添加到xml中,如下所示:-

<RollingFile name="General" fileName="log/logs/giornale.log" filePattern="log/logs/log-%d{yyyyMMdd}.log">

  <PatternLayout>
    <Pattern>%d{HH:mm:ss,SSS} [%t] %-5level %logger{-1} - %msg%n</Pattern>
  </PatternLayout>

  <Policies>
    <TimeBasedTriggeringPolicy />
  </Policies>

  <DefaultRolloverStrategy max="<specify maximum archive count>"/>

</RollingFile>

此外,您还可以对日志使用基于时间和大小的滚动组合,使用-

<Policies>
    <TimeBasedTriggeringPolicy interval="6" modulate="true"/>
    <SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>

…一个使用RollingFileAppender和基于时间和大小的触发策略的示例配置,将在同一天(1-7)创建最多7个存档,这些存档存储在基于当前年份和月份的目录中,并将使用gzip压缩每个存档,当小时可被6整除时,将每6小时滚动一次

公冶桐
2023-03-14

在“RollingFile”标记下添加以下标记。删除“策略”标记。你可能不需要它。

  <DefaultRolloverStrategy>
    <Delete basePath="log/logs" maxDepth="2">
      <IfLastModified age="60d" />
    </Delete>
  </DefaultRolloverStrategy>

使用此配置,将自动删除超过60天的日志。

有关更多配置信息,请参阅日志4J2文档。

 类似资料:
  • 我希望由log4j2创建的日志文件在其文件名中包含日期模式,包括当前活动文件。也就是说,如果今天的日期是2016-12-15,我希望当前日志文件是lager-2016-12-15.log。当日期改变时,我希望创建一个名为lager-2016-12-16.log的新文件。 使用,我无法使当前活动日志文件的文件名中具有日期模式。我的log4j2.xml: 使用此配置,翻转时的复制被搞乱了。从fileN

  • 我最近一直在使用log4j2,遇到了一个问题。发生翻转时,活动日志文件保留其日志。是否可以清除日志文件,以便滚动的文件将只保留日志在名称中指定的时间段?

  • 在log4j中,我可以这样指定文件: 但是在log4j2中,我不知道如何在一个句子中重写

  • 本文向大家介绍Tomcat日志文件定时清理备份的脚本,包括了Tomcat日志文件定时清理备份的脚本的使用技巧和注意事项,需要的朋友参考一下 以下脚本主要备份的日志文件为tomcat的catalina.out、localhost_access_log.yyyy-mm-dd.log日志和项目的日志文件,其中项目的日志文件格式为"projectname-yyyy-mm-dd.log",以下为备份脚本,具

  • 我有将日志保存到文件配置,但日志会附加到现有内容。我想创建总是新的文件。我怎么能那样做? 我的log4j2.xml:

  • 我按照这里的教程SpringEureka教程创建了一个基本的Eureka注册表jar应用程序。下一步是将日志记录更改为log4j2,这样我就可以使用Spring log4j2指南中的指南获得一个滚动文件。 我遇到的问题是,当我运行应用程序时,没有抛出错误,但是 eureka服务器日志仍会输出到控制台 已创建自定义日志输出文件“eureka.log”,但该文件为空 我编写的任何自定义日志,例如