LOG4J2-1292 bugfix in RollingRandomAccessFileManager: since the write(bytes[], ...) method is no longer called, track file size in flush()
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/cbd191c4 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/cbd191c4 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/cbd191c4 Branch: refs/heads/LOG4J2-1278-gc-free-logger Commit: cbd191c43a7032bedb6c2067a7e9bc0662e7e364 Parents: ccedadf Author: rpopma <[email protected]> Authored: Mon Feb 22 02:49:39 2016 +0900 Committer: rpopma <[email protected]> Committed: Mon Feb 22 02:49:39 2016 +0900 ---------------------------------------------------------------------- .../logging/log4j/core/appender/rolling/RollingFileManager.java | 2 +- .../core/appender/rolling/RollingRandomAccessFileManager.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cbd191c4/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 fc77a98..9e5d203 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 @@ -41,7 +41,7 @@ public class RollingFileManager extends FileManager { private static RollingFileManagerFactory factory = new RollingFileManagerFactory(); - private long size; + protected long size; private long initialTime; private final PatternProcessor patternProcessor; private final Semaphore semaphore = new Semaphore(1); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cbd191c4/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java index d436c2a..090be46 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java @@ -96,8 +96,6 @@ public class RollingRandomAccessFileManager extends RollingFileManager implement @Override protected synchronized void write(final byte[] bytes, int offset, int length, final boolean immediateFlush) { - super.write(bytes, offset, length, immediateFlush); // writes to dummy output stream, needed to track file size - int chunk = 0; do { if (length > buffer.remaining()) { @@ -128,6 +126,7 @@ public class RollingRandomAccessFileManager extends RollingFileManager implement buffer.flip(); try { randomAccessFile.write(buffer.array(), 0, buffer.limit()); + size += buffer.limit(); // track file size } catch (final IOException ex) { final String msg = "Error writing to RandomAccessFile " + getName(); throw new AppenderLoggingException(msg, ex);
