Description
We are upgrading log4j2 from 2.8.2 to 2.19.0 and found this issue:
Archives of log files always contain time from Cron trigger even they were archived by SizeBased trigger
Example:
RollingFile pattern: %d{yyyyMMddHHmm}-%i.gz
Cron expression: 0 0 0 * * ?
Archive: common.log-202212190000-1.gz
Created time: 2022-12-19 12:54
Config for testing:
<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Properties> <Property name="log.directory">log</Property> <Property name="appender.common.log_file_name">common.log</Property> <Property name="pattern.rolling.default">-%d{yyyyMMddHHmm}-%i.gz</Property> <Property name="pattern.layout.default">%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p <%threadGroupName> {%t} [%c{1}] %m %n</Property> <Property name="appender.default.cron_trigger_expression">0 0 0 * * ?</Property> </Properties> <Appenders> <RollingFile name="APPENDER_COMMON" fileName="${log.directory}/${appender.common.log_file_name}" filePattern="${log.directory}/${appender.common.log_file_name}${pattern.rolling.default}"> <PatternLayout pattern="${pattern.layout.default}"/> <Policies> <CronTriggeringPolicy schedule="${appender.default.cron_trigger_expression}"/> <SizeBasedTriggeringPolicy size="1MB"/> </Policies> <DefaultRolloverStrategy> <Delete basePath="${log.directory}"> <IfFileName glob="${appender.common.log_file_name}*.gz"> <IfAny> <IfLastModified age="90d"/> <IfAccumulatedFileCount exceeds="4000"/> </IfAny> </IfFileName> </Delete> </DefaultRolloverStrategy> </RollingFile> </Appenders> <Loggers> <Root level="TRACE"> <AppenderRef ref="APPENDER_COMMON"/> </Root> </Loggers> </Configuration>