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);
}