You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/09/04 07:22:31 UTC

[43/50] logging-log4j2 git commit: [LOG4J2-1558] SocketAppender should support IO buffering.

[LOG4J2-1558] SocketAppender should support IO buffering.

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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 0c4f48a5f95417785eaafad9df814863b7c2c639
Parents: 3c2148e
Author: ggregory <gg...@apache.org>
Authored: Sat Sep 3 17:42:27 2016 -0400
Committer: ggregory <gg...@apache.org>
Committed: Sat Sep 3 17:42:27 2016 -0400

----------------------------------------------------------------------
 .../logging/log4j/core/appender/SocketAppender.java      |  5 +++--
 src/site/xdoc/manual/appenders.xml                       | 11 +++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c4f48a5/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
index de1663b..c156ecf 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java
@@ -93,6 +93,7 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
         @Override
         public SocketAppender build() {
             boolean immediateFlush = isImmediateFlush();
+            boolean bufferedIo = isBufferedIo();
             Layout<? extends Serializable> layout = getLayout();
             if (layout == null) {
                 layout = SerializedLayout.createLayout();
@@ -112,8 +113,8 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
             final AbstractSocketManager manager = SocketAppender.createSocketManager(name, actualProtocol, host, port,
                     connectTimeoutMillis, sslConfiguration, reconnectDelayMillis, immediateFail, layout, getBufferSize());
 
-            return new SocketAppender(name, layout, getFilter(), manager, isIgnoreExceptions(), immediateFlush,
-                    advertise ? configuration.getAdvertiser() : null);
+            return new SocketAppender(name, layout, getFilter(), manager, isIgnoreExceptions(),
+                    !bufferedIo || immediateFlush, advertise ? configuration.getAdvertiser() : null);
         }
 
         public boolean getAdvertise() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c4f48a5/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index 0a38f0b..3518dbe 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -3491,6 +3491,17 @@ public class JpaLogEntity extends AbstractLogEventWrapperEntity {
                 to disk but could impact performance.</td>
             </tr>
             <tr>
+              <td>bufferedIO</td>
+              <td>boolean</td>
+              <td>When true - the default, events are written to a buffer and the data will be written to
+                the socket when the buffer is full or, if immediateFlush is set, when the record is written.</td>
+            </tr>
+            <tr>
+              <td>bufferSize</td>
+              <td>int</td>
+              <td>When bufferedIO is true, this is the buffer size, the default is 8192 bytes.</td>
+            </tr>
+            <tr>
               <td>layout</td>
               <td>Layout</td>
               <td>The Layout to use to format the LogEvent. The default is SerializedLayout.</td>