diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-01-10 12:11:20 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-01-10 12:11:20 +0100 |
commit | c40d02e256eedd62ec8eab2735652e8fb217cd5e (patch) | |
tree | 8a3e781bb0dae86c61a8f3a5b028ebfc3f29323d /vespalog | |
parent | f77006746634b570aac00847c2ebe426c5e40808 (diff) |
Make sure to close file handler used for zookeeper log messages
This avoid .lck files being left behind after stopping container
Diffstat (limited to 'vespalog')
-rw-r--r-- | vespalog/abi-spec.json | 3 | ||||
-rw-r--r-- | vespalog/src/main/java/com/yahoo/log/LogSetup.java | 15 |
2 files changed, 16 insertions, 2 deletions
diff --git a/vespalog/abi-spec.json b/vespalog/abi-spec.json index edf9703af4b..09ac3fa75d3 100644 --- a/vespalog/abi-spec.json +++ b/vespalog/abi-spec.json @@ -167,7 +167,8 @@ "public static java.util.Timer getTaskRunner()", "public static void clearHandlers()", "public static void initVespaLogging(java.lang.String)", - "public static com.yahoo.log.VespaLogHandler getLogHandler()" + "public static com.yahoo.log.VespaLogHandler getLogHandler()", + "public static void cleanup()" ], "fields": [] }, diff --git a/vespalog/src/main/java/com/yahoo/log/LogSetup.java b/vespalog/src/main/java/com/yahoo/log/LogSetup.java index 1bdefaa52fd..c29374b433b 100644 --- a/vespalog/src/main/java/com/yahoo/log/LogSetup.java +++ b/vespalog/src/main/java/com/yahoo/log/LogSetup.java @@ -23,6 +23,8 @@ public class LogSetup { /** The log handler used by this */ private static VespaLogHandler logHandler; + private static ZooKeeperFilter zooKeeperFilter = null; + public static void clearHandlers () { Enumeration<String> names = LogManager.getLogManager().getLoggerNames(); while (names.hasMoreElements()) { @@ -147,7 +149,8 @@ public class LogSetup { logHandler = new VespaLogHandler(getLogTargetFromString(target), new VespaLevelControllerRepo(logCtlFn, lev, app), service, app); String zookeeperLogFile = System.getProperty("zookeeperlogfile"); if (zookeeperLogFile != null) { - logHandler.setFilter(new ZooKeeperFilter(zookeeperLogFile)); + zooKeeperFilter = new ZooKeeperFilter(zookeeperLogFile); + logHandler.setFilter(zooKeeperFilter); } Logger.getLogger("").addHandler(logHandler); } @@ -157,6 +160,12 @@ public class LogSetup { return logHandler; } + /** Returns the log handler set up by this class */ + public static void cleanup() { + if (zooKeeperFilter != null) + zooKeeperFilter.close(); + } + /** * Class that has an isLoggable methods that handles log records that * start with "org.apache.zookeeper." in @@ -195,6 +204,10 @@ public class LogSetup { fileHandler.publish(record); return false; } + + public void close() { + fileHandler.close(); + } } } |