You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by mi...@apache.org on 2016/04/18 13:38:03 UTC

[17/50] logging-log4j2 git commit: LOG4J2-1274 moved ByteBuffer size from OutputStreamManager to Constants, improved Constants docs

LOG4J2-1274	moved ByteBuffer size from OutputStreamManager to Constants, improved Constants docs


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

Branch: refs/heads/LOG4J2-1365
Commit: 554086869fe0a49fb1edd9dae4f257c393baab9a
Parents: 7a9d18c
Author: rpopma <rp...@apache.org>
Authored: Sun Apr 17 15:27:10 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sun Apr 17 15:27:10 2016 +0900

----------------------------------------------------------------------
 .../apache/logging/log4j/core/appender/FileManager.java  |  3 ++-
 .../logging/log4j/core/appender/OutputStreamManager.java |  7 +++----
 .../log4j/core/appender/rolling/RollingFileManager.java  |  4 ++--
 .../logging/log4j/core/layout/ByteBufferDestination.java |  8 +++++---
 .../org/apache/logging/log4j/core/util/Constants.java    | 11 +++++++++++
 5 files changed, 23 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/55408686/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
index 43372b6..060f2db 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
@@ -29,6 +29,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.util.Constants;
 
 
 /**
@@ -213,7 +214,7 @@ public class FileManager extends OutputStreamManager {
             OutputStream os;
             try {
                 os = new FileOutputStream(name, data.append);
-                final int actualSize = data.bufferedIO ? data.bufferSize : DEFAULT_BUFFER_SIZE;
+                final int actualSize = data.bufferedIO ? data.bufferSize : Constants.ENCODER_BYTE_BUFFER_SIZE;
                 final ByteBuffer buffer = ByteBuffer.wrap(new byte[actualSize]);
                 return new FileManager(name, os, data.append, data.locking, data.advertiseURI, data.layout,
                         writeHeader, buffer);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/55408686/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
index b22f083..20ef401 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
@@ -23,21 +23,20 @@ import java.util.Objects;
 
 import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.layout.ByteBufferDestination;
+import org.apache.logging.log4j.core.util.Constants;
 
 /**
  * Manages an OutputStream so that it can be shared by multiple Appenders and will
  * allow appenders to reconfigure without requiring a new stream.
  */
 public class OutputStreamManager extends AbstractManager implements ByteBufferDestination {
-    protected static final int DEFAULT_BUFFER_SIZE = 8 * 1024;
-
-    private volatile OutputStream os;
     protected final Layout<?> layout;
     protected ByteBuffer byteBuffer;
+    private volatile OutputStream os;
 
     protected OutputStreamManager(final OutputStream os, final String streamName, final Layout<?> layout,
             final boolean writeHeader) {
-        this(os, streamName, layout, writeHeader, ByteBuffer.wrap(new byte[DEFAULT_BUFFER_SIZE]));
+        this(os, streamName, layout, writeHeader, ByteBuffer.wrap(new byte[Constants.ENCODER_BYTE_BUFFER_SIZE]));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/55408686/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 d0b0735..9c573eb 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
@@ -61,7 +61,7 @@ public class RollingFileManager extends FileManager {
             final RolloverStrategy rolloverStrategy, final String advertiseURI,
             final Layout<? extends Serializable> layout, final int bufferSize, final boolean writeHeader) {
         this(fileName, pattern, os, append, size, time, triggeringPolicy, rolloverStrategy, advertiseURI, layout,
-                writeHeader, ByteBuffer.wrap(new byte[DEFAULT_BUFFER_SIZE]));
+                writeHeader, ByteBuffer.wrap(new byte[Constants.ENCODER_BYTE_BUFFER_SIZE]));
     }
 
     protected RollingFileManager(final String fileName, final String pattern, final OutputStream os,
@@ -416,7 +416,7 @@ public class RollingFileManager extends FileManager {
             OutputStream os;
             try {
                 os = new FileOutputStream(name, data.append);
-                final int actualSize = data.bufferedIO ? data.bufferSize : DEFAULT_BUFFER_SIZE;
+                final int actualSize = data.bufferedIO ? data.bufferSize : Constants.ENCODER_BYTE_BUFFER_SIZE;
                 final ByteBuffer buffer = ByteBuffer.wrap(new byte[actualSize]);
 
                 final long time = file.lastModified(); // LOG4J2-531 create file first so time has valid value

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/55408686/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ByteBufferDestination.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ByteBufferDestination.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ByteBufferDestination.java
index 61ce3ba..88b8464 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ByteBufferDestination.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ByteBufferDestination.java
@@ -19,9 +19,11 @@ package org.apache.logging.log4j.core.layout;
 import java.nio.ByteBuffer;
 
 /**
- * ByteBufferDestination addresses the problem a producer has when the destination ByteBuffer is not large enough to
- * fit all the data. This interface allows a producer to write arbitrary amounts of data to a destination.
- *
+ * ByteBufferDestination is the destination that {@link Encoder}s write binary data to. It encapsulates a
+ * {@code ByteBuffer} and a {@code drain()} method the producer can call when the {@code ByteBuffer} is full.
+ * <p>
+ * This interface allows a producer to write arbitrary amounts of data to a destination.
+ * </p>
  * @since 2.6
  */
 public interface ByteBufferDestination {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/55408686/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java
index e1f175b..ef9764a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java
@@ -135,6 +135,17 @@ public final class Constants {
      */
     public static final int ENCODER_CHAR_BUFFER_SIZE = size("log4j.encoder.charBufferSize", 2048);
 
+    /**
+     * Default size of ByteBuffers used to encode LogEvents without allocating temporary objects.
+     * <p>
+     * The default value is {@value}, users can override with system property "log4j.encoder.byteBufferSize".
+     * </p>
+     * @see org.apache.logging.log4j.core.layout.ByteBufferDestination
+     * @since 2.6
+     */
+    public static final int ENCODER_BYTE_BUFFER_SIZE = size("log4j.encoder.byteBufferSize", 8 * 1024);
+
+
     private static int size(final String property, final int defaultValue) {
         return PropertiesUtil.getProperties().getIntegerProperty(property, defaultValue);
     }