Author: remm Date: Fri Jul 7 15:42:46 2006 New Revision: 420008 URL: http://svn.apache.org/viewvc?rev=420008&view=rev Log: - Should improve handling of the root logger (sorry, I don't know who submitted this, it was a while ago).
Modified: tomcat/tc6.0.x/trunk/java/org/apache/juli/ClassLoaderLogManager.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/juli/ClassLoaderLogManager.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/juli/ClassLoaderLogManager.java?rev=420008&r1=420007&r2=420008&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/juli/ClassLoaderLogManager.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/juli/ClassLoaderLogManager.java Fri Jul 7 15:42:46 2006 @@ -51,14 +51,15 @@ * weak hashmap is used to ensure no classloader reference is leaked from * application redeployment. */ - protected final Map classLoaderLoggers = new WeakHashMap(); + protected final Map<ClassLoader, ClassLoaderLogInfo> classLoaderLoggers = + new WeakHashMap<ClassLoader, ClassLoaderLogInfo>(); /** * This prefix is used to allow using prefixes for the properties names * of handlers and their subcomponents. */ - protected ThreadLocal prefix = new ThreadLocal(); + protected ThreadLocal<String> prefix = new ThreadLocal<String>(); // --------------------------------------------------------- Public Methods @@ -179,7 +180,7 @@ * Get an enumeration of the logger names currently defined in the * classloader local configuration. */ - public synchronized Enumeration getLoggerNames() { + public synchronized Enumeration<String> getLoggerNames() { ClassLoader classLoader = Thread.currentThread() .getContextClassLoader(); return Collections.enumeration(getClassLoaderInfo(classLoader).loggers.keySet()); @@ -334,12 +335,12 @@ } ClassLoaderLogInfo info = new ClassLoaderLogInfo(new LogNode(null, localRootLogger)); - info.loggers.put("", localRootLogger); classLoaderLoggers.put(classLoader, info); if (is != null) { readConfiguration(is, classLoader); } + addLogger(localRootLogger); } @@ -472,7 +473,8 @@ protected static final class LogNode { Logger logger; - protected final Map children = new HashMap(); + protected final Map<String, LogNode> children = + new HashMap<String, LogNode>(); protected final LogNode parent; @@ -487,6 +489,9 @@ LogNode findNode(String name) { LogNode currentNode = this; + if (logger.getName().equals(name)) { + return this; + } while (name != null) { final int dotIndex = name.indexOf('.'); final String nextName; @@ -538,8 +543,8 @@ protected static final class ClassLoaderLogInfo { final LogNode rootNode; - final Map loggers = new HashMap(); - final Map handlers = new HashMap(); + final Map<String, Logger> loggers = new HashMap<String, Logger>(); + final Map<String, Handler> handlers = new HashMap<String, Handler>(); final Properties props = new Properties(); ClassLoaderLogInfo(final LogNode rootNode) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]