[jboss-svn-commits] JBoss Common SVN: r3235 - in jboss-logmanager/trunk/src/main/java/org/jboss/logmanager: handlers and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 9 18:42:47 EDT 2009


Author: david.lloyd at jboss.com
Date: 2009-06-09 18:42:47 -0400 (Tue, 09 Jun 2009)
New Revision: 3235

Modified:
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogManager.java
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/PropertyConfigurator.java
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/handlers/ConsoleHandler.java
Log:
Properly initialize the console handler to use System.out

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogManager.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogManager.java	2009-06-09 21:47:07 UTC (rev 3234)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogManager.java	2009-06-09 22:42:47 UTC (rev 3235)
@@ -34,6 +34,7 @@
 import java.util.Iterator;
 import java.util.ListIterator;
 import java.util.NoSuchElementException;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.net.URL;
 
 /**
@@ -195,12 +196,17 @@
 
     // Configuration
 
+    private final AtomicBoolean configured = new AtomicBoolean();
+
     /**
-     * Configure the log manager.  An implementation of {@link ConfigurationLocator} is created by constructing an
+     * Configure the log manager one time.  An implementation of {@link ConfigurationLocator} is created by constructing an
      * instance of the class name specified in the {@code org.jboss.logmanager.configurationLocator} system property.
      */
     public void readConfiguration() throws IOException, SecurityException {
         checkAccess();
+        if (configured.getAndSet(true)) {
+            return;
+        }
         final String confLocClassName = System.getProperty("org.jboss.logmanager.configurationLocator", "org.jboss.logmanager.ClassPathConfigurationLocator");
         final ConfigurationLocator locator = construct(ConfigurationLocator.class, confLocClassName);
         final InputStream configuration = locator.findConfiguration();
@@ -219,7 +225,11 @@
         checkAccess();
         final String confClassName = System.getProperty("org.jboss.logmanager.configurator", "org.jboss.logmanager.PropertyConfigurator");
         final Configurator configurator = construct(Configurator.class, confClassName);
-        configurator.configure(inputStream);
+        try {
+            configurator.configure(inputStream);
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
         return;
     }
 

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/PropertyConfigurator.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/PropertyConfigurator.java	2009-06-09 21:47:07 UTC (rev 3234)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/PropertyConfigurator.java	2009-06-09 22:42:47 UTC (rev 3235)
@@ -32,6 +32,8 @@
 import java.util.Map;
 import java.util.Iterator;
 import java.util.HashMap;
+import java.util.Set;
+import java.util.HashSet;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import org.jboss.util.StringPropertyReplacer;
@@ -77,9 +79,14 @@
     private void configure(final Properties properties) throws IOException {
         // Start with the list of loggers to configure.  The root logger is always on the list.
         final List<String> loggerNames = getStringCsvList(properties, "loggers", "");
+        final Set<String> done = new HashSet<String>();
 
         // Now, for each logger name, configure any filters, handlers, etc.
         for (String loggerName : loggerNames) {
+            if (! done.add(loggerName)) {
+                // duplicate
+                continue;
+            }
             final Logger logger = LogContext.getSystemLogContext().getLogger(loggerName);
 
             // Get logger level

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/handlers/ConsoleHandler.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/handlers/ConsoleHandler.java	2009-06-09 21:47:07 UTC (rev 3234)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/handlers/ConsoleHandler.java	2009-06-09 22:42:47 UTC (rev 3235)
@@ -26,6 +26,8 @@
 
 import java.util.logging.Formatter;
 
+import org.jboss.logmanager.formatters.Formatters;
+
 /**
  * A console handler which writes to {@code System.out} by default.
  */
@@ -36,6 +38,7 @@
      * Construct a new instance.
      */
     public ConsoleHandler() {
+        super(out, Formatters.nullFormatter());
     }
 
     /**




More information about the jboss-svn-commits mailing list