You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2012/01/18 15:20:54 UTC

svn commit: r1232897 - /sling/trunk/bundles/commons/log/src/main/java/org/apache/sling/commons/log/internal/Activator.java

Author: fmeschbe
Date: Wed Jan 18 14:20:53 2012
New Revision: 1232897

URL: http://svn.apache.org/viewvc?rev=1232897&view=rev
Log:
SLING-2373 Unless explicit configuration file or configurator is set in system properties, a dummy configurator is configured and log manager is forced to read it.

Modified:
    sling/trunk/bundles/commons/log/src/main/java/org/apache/sling/commons/log/internal/Activator.java

Modified: sling/trunk/bundles/commons/log/src/main/java/org/apache/sling/commons/log/internal/Activator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/log/src/main/java/org/apache/sling/commons/log/internal/Activator.java?rev=1232897&r1=1232896&r2=1232897&view=diff
==============================================================================
--- sling/trunk/bundles/commons/log/src/main/java/org/apache/sling/commons/log/internal/Activator.java (original)
+++ sling/trunk/bundles/commons/log/src/main/java/org/apache/sling/commons/log/internal/Activator.java Wed Jan 18 14:20:53 2012
@@ -39,6 +39,22 @@ public class Activator implements Bundle
         logManager = new LogManager(context);
 
         if (Boolean.parseBoolean(context.getProperty(JUL_SUPPORT))) {
+
+            // make sure configuration is empty unless explicitly set
+            if (System.getProperty("java.util.logging.config.file") == null
+                && System.getProperty("java.util.logging.config.class") == null) {
+                final Thread ct = Thread.currentThread();
+                final ClassLoader old = ct.getContextClassLoader();
+                try {
+                    ct.setContextClassLoader(getClass().getClassLoader());
+                    System.setProperty("java.util.logging.config.class",
+                        "org.apache.sling.commons.log.internal.Activator.DummyLogManagerConfiguration");
+                    java.util.logging.LogManager.getLogManager().reset();
+                } finally {
+                    ct.setContextClassLoader(old);
+                }
+            }
+
             SLF4JBridgeHandler.install();
         }
     }
@@ -54,4 +70,13 @@ public class Activator implements Bundle
             logManager = null;
         }
     }
+
+    /**
+     * The <code>DummyLogManagerConfiguration</code> class is used as
+     * JUL LogginManager configurator to preven reading platform default
+     * configuration which just duplicate log output to be redirected to
+     * SLF4J.
+     */
+    public static class DummyLogManagerConfiguration {
+    }
 }