aboutsummaryrefslogtreecommitdiffstats
path: root/vespalog
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-01-10 12:11:20 +0100
committerHarald Musum <musum@verizonmedia.com>2020-01-10 12:11:20 +0100
commitc40d02e256eedd62ec8eab2735652e8fb217cd5e (patch)
tree8a3e781bb0dae86c61a8f3a5b028ebfc3f29323d /vespalog
parentf77006746634b570aac00847c2ebe426c5e40808 (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.json3
-rw-r--r--vespalog/src/main/java/com/yahoo/log/LogSetup.java15
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();
+ }
}
}