Repository: logging-log4j2
Updated Branches:
  refs/heads/master bd077fc87 -> b0b4f8659


LOG4J2-1440 - Do not delete files if OnStartupTriggeringPolicy has a minSize of 
0.


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b0b4f865
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b0b4f865
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b0b4f865

Branch: refs/heads/master
Commit: b0b4f86596302b55d51b1b58f9809ff97fa9e646
Parents: bd077fc
Author: Ralph Goers <[email protected]>
Authored: Sat Jul 2 13:02:59 2016 -0700
Committer: Ralph Goers <[email protected]>
Committed: Sat Jul 2 13:03:53 2016 -0700

----------------------------------------------------------------------
 .../core/appender/rolling/DefaultRolloverStrategy.java      | 9 +++++----
 .../core/appender/rolling/OnStartupTriggeringPolicy.java    | 3 +++
 .../log4j/core/appender/rolling/RollingFileManager.java     | 9 +++++++++
 3 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b0b4f865/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
index 2a83861..dd1f42c 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
@@ -181,7 +181,7 @@ public class DefaultRolloverStrategy implements 
RolloverStrategy {
 
     /**
      * Create the DefaultRolloverStrategy.
-     * 
+     *
      * @param max The maximum number of files to keep.
      * @param min The minimum number of files to keep.
      * @param fileIndex If set to "max" (the default), files with a higher 
index will be newer than files with a smaller
@@ -243,7 +243,7 @@ public class DefaultRolloverStrategy implements 
RolloverStrategy {
 
     /**
      * Constructs a new instance.
-     * 
+     *
      * @param minIndex The minimum index.
      * @param maxIndex The maximum index.
      * @param customActions custom actions to perform asynchronously after 
rollover
@@ -510,7 +510,7 @@ public class DefaultRolloverStrategy implements 
RolloverStrategy {
 
     /**
      * Perform the rollover.
-     * 
+     *
      * @param manager The RollingFileManager name for current active log file.
      * @return A RolloverDescription.
      * @throws SecurityException if an error occurs.
@@ -545,7 +545,8 @@ public class DefaultRolloverStrategy implements 
RolloverStrategy {
             }
         }
 
-        final FileRenameAction renameAction = new FileRenameAction(new 
File(currentFileName), new File(renameTo), false);
+        final FileRenameAction renameAction = new FileRenameAction(new 
File(currentFileName), new File(renameTo),
+                manager.isRenameEmptyFiles());
 
         final Action asyncAction = merge(compressAction, customActions, 
stopCustomActionsOnError);
         return new RolloverDescriptionImpl(currentFileName, false, 
renameAction, asyncAction);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b0b4f865/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicy.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicy.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicy.java
index 12e2b23..a380028 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicy.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/OnStartupTriggeringPolicy.java
@@ -75,6 +75,9 @@ public class OnStartupTriggeringPolicy implements 
TriggeringPolicy {
     @Override
     public void initialize(final RollingFileManager manager) {
         if (manager.getFileTime() < JVM_START_TIME && manager.getFileSize() >= 
minSize) {
+            if (minSize == 0) {
+                manager.setRenameEmptyFiles(true);
+            }
             manager.skipFooter(true);
             manager.rollover();
             manager.skipFooter(false);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b0b4f865/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
index 1caeeb3..9b721bc 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
@@ -48,6 +48,7 @@ public class RollingFileManager extends FileManager {
     private final Semaphore semaphore = new Semaphore(1);
     private volatile TriggeringPolicy triggeringPolicy;
     private volatile RolloverStrategy rolloverStrategy;
+    private volatile boolean renameEmptyFiles = false;
 
     private static final AtomicReferenceFieldUpdater<RollingFileManager, 
TriggeringPolicy> triggeringPolicyUpdater =
             AtomicReferenceFieldUpdater.newUpdater(RollingFileManager.class, 
TriggeringPolicy.class, "triggeringPolicy");
@@ -115,6 +116,14 @@ public class RollingFileManager extends FileManager {
         super.writeToDestination(bytes, offset, length);
     }
 
+    public boolean isRenameEmptyFiles() {
+        return renameEmptyFiles;
+    }
+
+    public void setRenameEmptyFiles(boolean renameEmptyFiles) {
+        this.renameEmptyFiles = renameEmptyFiles;
+    }
+
     /**
      * Returns the current size of the file.
      * @return The size of the file in bytes.

Reply via email to