[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