LOG4J2-1343 enable direct encoders only for async loggers for now

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

Branch: refs/heads/LOG4J2-1356
Commit: 4d1d60de40b37e4e378bffe983028db3db23759d
Parents: 34bc95d
Author: rpopma <[email protected]>
Authored: Fri Apr 8 08:45:02 2016 +0900
Committer: rpopma <[email protected]>
Committed: Fri Apr 8 08:45:02 2016 +0900

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/core/util/Constants.java   | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4d1d60de/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 dd1cd27..eedcf71 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
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.core.util;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 
+import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
 /**
@@ -95,12 +96,15 @@ public final class Constants {
      * {@link org.apache.logging.log4j.core.layout.ByteBufferDestination}s 
without creating intermediate temporary
      * Objects.
      * <p>
-     * {@code True} by default, disable by setting system property 
"log4j2.enable.direct.encoders" to "false".
+     * {@code True} by default iff all loggers are asynchronous because system 
property
+     * {@code Log4jContextSelector} is set to {@code 
org.apache.logging.log4j.core.async.AsyncLoggerContextSelector}.
+     * Disable by setting system property "log4j2.enable.direct.encoders" to 
"false".
      *
      * @since 2.6
      */
     public static final boolean ENABLE_DIRECT_ENCODERS = 
PropertiesUtil.getProperties().getBooleanProperty(
-            "log4j2.enable.direct.encoders", true);
+            "log4j2.enable.direct.encoders",
+            
AsyncLoggerContextSelector.class.getName().equals(PropertiesUtil.getProperties().getStringProperty(LOG4J_CONTEXT_SELECTOR)));
 
     /**
      * Prevent class instantiation.

Reply via email to