Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 除了使用MaxBackupIndex,我们是否可以在log4j中删除超过特定天数的日志_Java_Log4j_Log4j2 - Fatal编程技术网

Java 除了使用MaxBackupIndex,我们是否可以在log4j中删除超过特定天数的日志

Java 除了使用MaxBackupIndex,我们是否可以在log4j中删除超过特定天数的日志,java,log4j,log4j2,Java,Log4j,Log4j2,我在我的应用程序中使用log4j,日志是使用这个框架生成的 我想删除超过10天的日志,因为日志大小正在快速增加 我知道MaxFileSize和MaxBackupIndex通常会根据生成的文件数进行删除,但我的要求是删除比特定日期更早的日志。我们在log4j中是否有任何选项,或者我们是否需要使用下面这样的unix脚本并清除日志 find -type f -mtime +7 -exec rm -f {} \; 谢谢 Harsha GNSLog4j2支持滚动配置中的。这正是你要找的 下面是一个示例配

我在我的应用程序中使用log4j,日志是使用这个框架生成的

我想删除超过10天的日志,因为日志大小正在快速增加

我知道MaxFileSize和MaxBackupIndex通常会根据生成的文件数进行删除,但我的要求是删除比特定日期更早的日志。我们在log4j中是否有任何选项,或者我们是否需要使用下面这样的unix脚本并清除日志

find -type f -mtime +7 -exec rm -f {} \;
谢谢 Harsha GNS

Log4j2支持滚动配置中的。这正是你要找的

下面是一个示例配置,它使用RollingFileAppender,并将cron触发策略配置为每天午夜触发。档案存储在基于当前年份和月份的目录中。基本目录下与
“*/app-*.log.gz”
glob匹配且存在60天或更长时间的所有文件将在滚动时删除:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Properties>
    <Property name="baseDir">logs</Property>
  </Properties>
  <Appenders>
    <RollingFile name="RollingFile" fileName="${baseDir}/app.log"
          filePattern="${baseDir}/$${date:yyyy-MM}/app-%d{yyyy-MM-dd}.log.gz">
      <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
      <CronTriggeringPolicy schedule="0 0 0 * * ?"/>
      <DefaultRolloverStrategy>
        <Delete basePath="${baseDir}" maxDepth="2">
          <IfFileName glob="*/app-*.log.gz" />
          <IfLastModified age="60d" />
        </Delete>
      </DefaultRolloverStrategy>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

日志

谢谢。所以我们在log4j中没有这个选项,对吗?我们必须使用log4j2,我相信是这样。您可能希望升级到Log4j2,因为log4j1在2015年成为生命的终结,并且在java9中被破坏。