Shutdown the handlers used by webapps otherwise log messages in the buffer just get...
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 7 Dec 2009 18:48:27 +0000 (18:48 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 7 Dec 2009 18:48:27 +0000 (18:48 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@888072 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/juli/ClassLoaderLogManager.java

index 6fb2f14..32effe8 100644 (file)
@@ -485,6 +485,33 @@ public class ClassLoaderLogManager extends LogManager {
     }
     
 
+    /**
+     * Need to override reset so the loggers loaded by the web applications can
+     * be shutdown.
+     */
+    @Override
+    public void reset() {
+        super.reset();
+        for (ClassLoaderLogInfo classLoaderLogInfo : classLoaderLoggers.values()) {
+            for (Logger logger : classLoaderLogInfo.loggers.values()) {
+                resetLogger(logger);
+            }
+        }
+    }
+    
+    private void resetLogger(Logger logger) {
+        
+        Handler[] handlers = logger.getHandlers();
+        for (Handler handler : handlers) {
+            logger.removeHandler(handler);
+            try {
+                handler.close();
+            } catch (Exception e) {
+                // Ignore
+            }
+        }
+    }
+
     // ---------------------------------------------------- LogNode Inner Class