Remain 7 days log file with Log4j2. Please use the version above 2.16.0.
<?xml version="1.0" encoding="UTF-8"?><Configuration><Properties><Property name="FILE_PATH">/path/to/your/log/folder</Property><Property name="FILE_NAME">your-log-file-name</Property><Property name="PATTERN">{"host": "%host", "logger": "%logger", "level": "%level", "message": "[%thread] [%c:%L]--- %message"}%n</Property>s</Properties><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%file] [%thread] %n%level : %msg%n"/></Console><RollingRandomAccessFile name="HourLogFile" fileName="${FILE_PATH}/${FILE_NAME}-hour.log"filePattern="${FILE_PATH}/${FILE_NAME}-hour.%d{yyy-MM-dd HH}.log"><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!-- interval 属性用来指定多久滚动一次,默认是 1 hour--><TimeBasedTriggeringPolicy interval="1" modulate="true"/><!-- 当文件达到设定阈值时,会滚动一次(保存为新文件) --><SizeBasedTriggeringPolicy size="100MB"/></Policies><!-- 该路径下最多能存放多少个文件,大于该数值后覆盖旧的文件,默认是 7 个 --><DefaultRolloverStrategy max="100"><Delete basePath="${FILE_PATH}/" maxDepth="2"><IfFileName glob="*.log"/><!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用 另外, 数字最好>2,否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功! --><!-- 7天 = 168H --><IfLastModified age="168H"/></Delete></DefaultRolloverStrategy></RollingRandomAccessFile></Appenders><Loggers><AsyncLogger name="org.springframework" level="DEBUG" additivity="false"><AppenderRef ref="Console"/><AppenderRef ref="HourLogFile"/></AsyncLogger><AsyncLogger name="org.apache.ibatis" level="DEBUG" additivity="false"><AppenderRef ref="Console"/><AppenderRef ref="HourLogFile"/></AsyncLogger><Root level="INFO"><AppenderRef ref="Console"/><AppenderRef ref="HourLogFile"/></Root></Loggers></Configuration>
