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/08 14:04:02 UTC
[10/50] logging-log4j2 git commit: LOG4J2-1343 SocketAppenders should
explicitly _not_ use the garbage-free Layout mechanism for now (until
solutions for the noted problems are found)
LOG4J2-1343 SocketAppenders should explicitly _not_ use the garbage-free Layout mechanism for now (until solutions for the noted problems are found)
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/dc78ca08
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/dc78ca08
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/dc78ca08
Branch: refs/heads/LOG4J2-1356
Commit: dc78ca08c4a32b95f44254718a7379347cc2ded4
Parents: 723c49f
Author: rpopma <rp...@apache.org>
Authored: Thu Apr 7 02:57:26 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Thu Apr 7 02:57:26 2016 +0900
----------------------------------------------------------------------
.../log4j/core/appender/SocketAppender.java | 21 ++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/dc78ca08/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 4a97189..6d0221e 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
@@ -22,6 +22,7 @@ import java.util.Map;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.config.plugins.PluginAliases;
@@ -74,7 +75,7 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
/**
* Creates a socket appender.
- *
+ *
* @param host
* The name of the host to connect to.
* @param port
@@ -122,10 +123,10 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
@PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) final boolean ignoreExceptions,
@PluginElement("Layout") Layout<? extends Serializable> layout,
@PluginElement("Filter") final Filter filter,
- @PluginAttribute(value = "advertise", defaultBoolean = false) final boolean advertise,
+ @PluginAttribute(value = "advertise", defaultBoolean = false) final boolean advertise,
@PluginConfiguration final Configuration config) {
// @formatter:on
-
+
if (layout == null) {
layout = SerializedLayout.createLayout();
}
@@ -149,7 +150,7 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
/**
* Creates a socket appender.
- *
+ *
* @param host
* The name of the host to connect to.
* @param portNum
@@ -200,7 +201,7 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
final String ignore,
Layout<? extends Serializable> layout,
final Filter filter,
- final String advertise,
+ final String advertise,
final Configuration config) {
// @formatter:on
boolean isFlush = Booleans.parseBoolean(immediateFlush, true);
@@ -216,7 +217,7 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
/**
* Creates an AbstractSocketManager for TCP, UDP, and SSL.
- *
+ *
* @throws IllegalArgumentException
* if the protocol cannot be handled.
*/
@@ -243,4 +244,12 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM
throw new IllegalArgumentException(protocol.toString());
}
}
+
+ @Override
+ protected void directEncodeEvent(final LogEvent event) {
+ // Disable garbage-free logging for now:
+ // problem with TCP: synchronization on manager in Reconnector thread would give deadlock.
+ // problem with UDP: 8K buffer size means that largish messages get broken up into chunks
+ writeByteArrayToManager(event); // revert to classic (non-garbage free) logging
+ }
}