我用 TimeBasedTriggeringPolicy 的 Policy 配置了 log4j2,我希望日志文件可以在每天 00:00 滚动到一个 zip 文件中。但它不会发生。
<RollingFile name="RollingFile" ignoreExceptions="false" fileName="${log.file.dir}/aaa.log" filePattern="${log.file.dir}/$${date:yyyy-MM}/aaa-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n" />
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="128 MB" />
</Policies>
<DefaultRolloverStrategy max="1000"/>
</RollingFile>
当我添加如下类时,系统会在每天 3 点 15 分创建一个 zip 文件。
@Component
public class Scheduler {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Scheduled(cron="0 15 3 * * ?") //3:15 every day
public void doSomething() {
logger.info("3:15 every day");
}
}
log4j2 汇总机制受到 Spring @Schedule 注释的影响,这很奇怪,不是吗?任何人都知道我怎样才能避免这种情况发生?谢谢!