You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2009/04/13 12:00:59 UTC

svn commit: r764388 - /geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/logging/log4j/ApplicationLog4jConfigurationGBean.java

Author: xuhaihong
Date: Mon Apr 13 10:00:59 2009
New Revision: 764388

URL: http://svn.apache.org/viewvc?rev=764388&view=rev
Log:
GERONIMO-4615 Make the client application could use their own Log4j configuration with ApplicationLog4jConfigurationGBean

Modified:
    geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/logging/log4j/ApplicationLog4jConfigurationGBean.java

Modified: geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/logging/log4j/ApplicationLog4jConfigurationGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/logging/log4j/ApplicationLog4jConfigurationGBean.java?rev=764388&r1=764387&r2=764388&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/logging/log4j/ApplicationLog4jConfigurationGBean.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/logging/log4j/ApplicationLog4jConfigurationGBean.java Mon Apr 13 10:00:59 2009
@@ -30,7 +30,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.system.serverinfo.ServerInfo;
-import org.apache.log4j.PropertyConfigurator;
 
 /**
  * @version $Rev$ $Date$
@@ -62,20 +61,25 @@
         } finally {
             in.close();
         }
-        //remove any global log4j configuration
-        for (Iterator it = props.keySet().iterator(); it.hasNext(); ) {
-            String key = (String) it.next();
-            if (key.startsWith(CATEGORY_PREFIX)
-                    || key.startsWith(LOGGER_PREFIX)
-                    || key.startsWith(ADDITIVITY_PREFIX)
-                    || key.startsWith(APPENDER_PREFIX)
-                    || key.startsWith(RENDERER_PREFIX)) {
-                continue;
+        try {
+            Class log4jConfigClass = classloader.loadClass("org.apache.log4j.PropertyConfigurator");
+            if (log4jConfigClass.getClassLoader() == ClassLoader.getSystemClassLoader()) {
+                //remove any global log4j configuration
+                for (Iterator it = props.keySet().iterator(); it.hasNext();) {
+                    String key = (String) it.next();
+                    if (key.startsWith(CATEGORY_PREFIX)
+                            || key.startsWith(LOGGER_PREFIX)
+                            || key.startsWith(ADDITIVITY_PREFIX)
+                            || key.startsWith(APPENDER_PREFIX)
+                            || key.startsWith(RENDERER_PREFIX)) {
+                        continue;
+                    }
+                    it.remove();
+                }
             }
-            it.remove();
+            log4jConfigClass.getMethod("configure", Properties.class).invoke(null, props);
+        } catch (Exception e) {        
         }
-
-        PropertyConfigurator.configure(props);
     }
 
     public static final GBeanInfo GBEAN_INFO;