Clean up logger on shutdown
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 21 Jul 2015 20:46:34 +0000 (22:46 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 21 Jul 2015 20:46:34 +0000 (22:46 +0200)
src/main/java/net/pterodactylus/sone/main/SonePlugin.java

index 17340b8..e63241b 100644 (file)
@@ -75,9 +75,10 @@ import freenet.support.api.Bucket;
  */
 public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, FredPluginBaseL10n, FredPluginThreadless, FredPluginVersioned {
 
+       private static final Logger soneLogger = getLogger("net.pterodactylus.sone");
+
        static {
                /* initialize logging. */
-               Logger soneLogger = getLogger("net.pterodactylus.sone");
                soneLogger.setUseParentHandlers(false);
                soneLogger.addHandler(new Handler() {
                        private final LoadingCache<String, Class<?>> classCache = CacheBuilder.newBuilder()
@@ -295,6 +296,7 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr
         */
        @Override
        public void terminate() {
+               deregisterLoggerHandlers();
                try {
                        /* stop the web interface. */
                        webInterface.stop();
@@ -309,6 +311,12 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr
                }
        }
 
+       private void deregisterLoggerHandlers() {
+               for (Handler handler : soneLogger.getHandlers()) {
+                       soneLogger.removeHandler(handler);
+               }
+       }
+
        //
        // INTERFACE FredPluginFCP
        //