diff --git a/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java b/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java index 034c720..352c4a6 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java +++ b/logback-core/src/main/java/ch/qos/logback/core/rolling/FixedWindowRollingPolicy.java @@ -130,6 +130,7 @@ public class FixedWindowRollingPolicy extends RollingPolicyBase { break; case GZ: case ZIP: + util.createMissingTargetDirsIfNecessary(new File(fileNamePattern.convertInt(minIndex))); compressor.compress(getActiveFileName(), fileNamePattern.convertInt(minIndex)); break; } diff --git a/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java b/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java index 16be2a8..efcc967 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java +++ b/logback-core/src/main/java/ch/qos/logback/core/rolling/TimeBasedRollingPolicy.java @@ -129,6 +129,7 @@ public class TimeBasedRollingPolicy extends RollingPolicyBase implements renameUtil.rename(getParentsRawFileProperty(), elapsedPeriodsFileName); } // else { nothing to do if CompressionMode == NONE and parentsRawFileProperty == null } } else { + renameUtil.createMissingTargetDirsIfNecessary(new File(elapsedPeriodsFileName)); if (getParentsRawFileProperty() == null) { future = asyncCompress(elapsedPeriodsFileName, elapsedPeriodsFileName); } else { diff --git a/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/RenameUtil.java b/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/RenameUtil.java index c609cc0..d2a493a 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/RenameUtil.java +++ b/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/RenameUtil.java @@ -95,7 +95,7 @@ public class RenameUtil extends ContextAwareBase { } } - void createMissingTargetDirsIfNecessary(File toFile) throws RolloverFailure { + public void createMissingTargetDirsIfNecessary(File toFile) throws RolloverFailure { if (FileUtil.isParentDirectoryCreationRequired(toFile)) { boolean result = FileUtil.createMissingParentDirectories(toFile); if (!result) {