我已将我们的应用程序配置为每天滚动日志文件,并在3天后将其删除。当前日志文件具有当前日期(yyyy-mm-dd格式)。配置如下:
// <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Properties>
<Property name="globPattern">${env:LOG_FILE_NAME}*.log.gz</Property>
</Properties>
<Appenders>
<RollingFile name="fileLogger" fileName="${env:LOG_DIR}/${env:LOG_FILE_NAME}-${date:yyyy-MM-dd}.log"
filePattern="${env:LOG_DIR}/${env:LOG_FILE_NAME}-%d{yyyy-MM-dd}.log.gz">
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${env:LOG_DIR}" maxDepth="1">
<IfFileName glob="${globPattern}" />
<IfLastModified age="3d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] %c{1} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<Root level="${env:LOG_LEVEL}" additivity="true">
<appender-ref ref="fileLogger" />
<!-- <appender-ref ref="console" /> -->
</Root>
</Loggers>
</Configuration>
使用版本为2.9.0的Log4j2(org.apache.logging.log4j:log4j-slf4j-impl:2.9.0)
但是问题是,在第二天,文件将被翻转,但没有对其进行压缩,只是在下一个日期创建一个新的日志文件。