Author: rmannibucau Date: Mon Oct 6 11:07:41 2014 New Revision: 1629617 URL: http://svn.apache.org/r1629617 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/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?rev=1629617&r1=1629616&r2=1629617&view=diff ============================================================================== --- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java (original) +++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java Mon Oct 6 11:07:41 2014 @@ -85,21 +85,35 @@ public class Logger { factoryName = "org.apache.openejb.util.PaxLogStreamFactory"; } - 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() {