This is an automated email from the ASF dual-hosted git repository. rgoers pushed a commit to branch release-2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit cdca105dea3ccf5df53622c0f16edfc4837960ac Author: Ralph Goers <rgo...@apache.org> AuthorDate: Mon Jan 2 18:08:41 2023 -0700 LOG4J2-3357 - use time trigger was scheduled to fire instead of current time. --- .../logging/log4j/core/appender/rolling/CronTriggeringPolicy.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java index b0297077e3..3ee8bdc469 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java @@ -146,7 +146,9 @@ public final class CronTriggeringPolicy extends AbstractTriggeringPolicy { } private void rollover() { - manager.rollover(cronExpression.getPrevFireTime(new Date()), lastRollDate); + // If possible, use the time rollover was supposed to occur, not the actual time. + Date rollTime = future != null ? future.getFireTime() : new Date(); + manager.rollover(cronExpression.getPrevFireTime(rollTime), lastRollDate); if (future != null) { lastRollDate = future.getFireTime(); }