You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/10/06 13:07:42 UTC

svn commit: r1629618 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java

Author: rmannibucau
Date: Mon Oct  6 11:07:41 2014
New Revision: 1629618

URL: http://svn.apache.org/r1629618
Log:
we miss configure(Props) in LogStreamfactory so workaround for a known property, we can desire to do it for few more and maybe use a ThreadLocal but it would be a as poor solution as today

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?rev=1629618&r1=1629617&r2=1629618&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java Mon Oct  6 11:07:41 2014
@@ -82,21 +82,36 @@ public class Logger {
             factoryName = "org.apache.openejb.util.Log4j2LogStreamFactory";
         }
 
-        if (factoryName != null) {
+        // we can be called before having SystemInstance so we need this hack to set some specific
+        // environment
+        // without changing LogStreamFactory contract
+        final String specialKey = "openejb.jul.forceReload";
+        final String original = System.getProperty(specialKey);
+        System.setProperty(specialKey, config.getProperty(specialKey, SystemInstance.isInitialized() ? SystemInstance.get().getOptions().get(specialKey, (String) null) : null));
 
-            logStreamFactory = createFactory(factoryName);
-        }
+        try {
+            if (factoryName != null) {
 
-        if (isLog4jImplied()) {
-            logStreamFactory = createFactory("org.apache.openejb.util.Log4jLogStreamFactory");
-        }
+                logStreamFactory = createFactory(factoryName);
+            }
 
-        //Fall back -> JUL
-        if (logStreamFactory == null) {
-            logStreamFactory = new JuliLogStreamFactory();
-        }
+            if (isLog4jImplied()) {
+                logStreamFactory = createFactory("org.apache.openejb.util.Log4jLogStreamFactory");
+            }
 
-        checkForIgnoredLog4jConfig();
+            //Fall back -> JUL
+            if (logStreamFactory == null) {
+                logStreamFactory = new JuliLogStreamFactory();
+            }
+
+            checkForIgnoredLog4jConfig();
+        } finally {
+            if (original == null) {
+                System.clearProperty(specialKey);
+            } else {
+                System.setProperty(specialKey, original);
+            }
+        }
     }
 
     private static void checkForIgnoredLog4jConfig() {