[jboss-svn-commits] JBoss Common SVN: r3111 - jboss-logmanager/trunk/src/main/java/org/jboss/logmanager.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Apr 13 20:13:54 EDT 2009


Author: david.lloyd at jboss.com
Date: 2009-04-13 20:13:54 -0400 (Mon, 13 Apr 2009)
New Revision: 3111

Modified:
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogContext.java
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LoggerNode.java
Log:
Add methods to get a logger without creating one (for management views)

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogContext.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogContext.java	2009-04-13 23:24:25 UTC (rev 3110)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LogContext.java	2009-04-14 00:13:54 UTC (rev 3111)
@@ -78,6 +78,18 @@
     }
 
     /**
+     * Get a logger with the given name from this logging context if it already exists.  If no logger of the given
+     * name currently exists, {@code null} is returned.
+     *
+     * @param name the logger name
+     * @return the logger instance, or {@code null} if none exists with the given name
+     */
+    public Logger getLoggerIfExists(String name) {
+        final LoggerNode node = rootLogger.getIfExists(name);
+        return node == null ? null : node.getLogger();
+    }
+
+    /**
      * Get the system log context.
      *
      * @return the system log context

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LoggerNode.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LoggerNode.java	2009-04-13 23:24:25 UTC (rev 3110)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/LoggerNode.java	2009-04-14 00:13:54 UTC (rev 3111)
@@ -94,7 +94,7 @@
      * @param name the name
      * @return the corresponding logger node
      */
-    LoggerNode getOrCreate(String name) {
+    LoggerNode getOrCreate(final String name) {
         if (name == null || name.length() == 0) {
             return this;
         } else {
@@ -117,6 +117,30 @@
     }
 
     /**
+     * Get a relative logger, if it exists.
+     *
+     * @param name the name
+     * @return the corresponding logger
+     */
+    LoggerNode getIfExists(final String name) {
+        if (name == null || name.length() == 0) {
+            return this;
+        } else {
+            int i = name.indexOf('.');
+            final String nextName = i == -1 ? name : name.substring(0, i);
+            LoggerNode nextNode = children.get(nextName);
+            if (nextNode == null) {
+                return null;
+            }
+            if (i == -1) {
+                return nextNode;
+            } else {
+                return nextNode.getIfExists(name.substring(i + 1));
+            }
+        }
+    }
+
+    /**
      * Get or create a logger instance for this node.
      *
      * @return a logger instance
@@ -134,6 +158,17 @@
     }
 
     /**
+     * Get a logger instance for this node.
+     *
+     * @return a logger instance
+     */
+    Logger getLogger() {
+        synchronized(this) {
+            return loggerRef == null ? null : loggerRef.get();
+        }
+    }
+
+    /**
      * Return the logger instance of the parent logger node, or {@code null} if this is the root logger node.
      *
      * @return the parent logger instance, or {@code null} for none




More information about the jboss-svn-commits mailing list