handle main job log handler like current launch job log handler, close on teardown

This commit is contained in:
Noah Levitt
2014-02-26 17:19:50 -08:00
parent 88dc01305f
commit ea19dacbd2
2 changed files with 12 additions and 18 deletions
@@ -132,9 +132,9 @@ public class CrawlJob implements Comparable<CrawlJob>, ApplicationListener<Appli
if(jobLogger == null) {
jobLogger = Logger.getLogger(getShortName());
try {
Handler h = new FileHandler(getJobLog().getAbsolutePath(),true);
h.setFormatter(new JobLogFormatter());
jobLogger.addHandler(h);
mainJobLogHandler = new FileHandler(getJobLog().getAbsolutePath(),true);
mainJobLogHandler.setFormatter(new JobLogFormatter());
jobLogger.addHandler(mainJobLogHandler);
} catch (SecurityException e) {
throw new RuntimeException(e);
} catch (IOException e) {
@@ -145,18 +145,6 @@ public class CrawlJob implements Comparable<CrawlJob>, ApplicationListener<Appli
return jobLogger;
}
/**
* Cleanup when jobdir is removed. closes job.log file
*/
public void cleanup() {
Logger jobLogLogger = getJobLogger();
Handler[] handlers = jobLogLogger.getHandlers();
for(Handler handler: handlers) {
jobLogLogger.removeHandler(handler);
handler.close();
}
}
public DateTime getLastLaunch() {
return lastLaunch;
}
@@ -454,6 +442,7 @@ public class CrawlJob implements Comparable<CrawlJob>, ApplicationListener<Appli
}
}
protected transient Handler mainJobLogHandler;
protected transient Handler currentLaunchJobLogHandler;
protected boolean needTeardown = false;
@@ -593,7 +582,14 @@ public class CrawlJob implements Comparable<CrawlJob>, ApplicationListener<Appli
currentLaunchJobLogHandler = null;
}
getJobLogger().log(Level.INFO,"Job instance discarded");
getJobLogger().log(Level.INFO, "Job instance discarded");
if (mainJobLogHandler != null) {
getJobLogger().removeHandler(mainJobLogHandler);
mainJobLogHandler.close();
mainJobLogHandler = null;
}
jobLogger = null;
}
}
@@ -86,8 +86,6 @@ public class Engine {
for(String jobName: jobConfigs.keySet().toArray(new String[0])) {
CrawlJob cj = jobConfigs.get(jobName);
if(!cj.getJobDir().exists()) {
CrawlJob job = jobConfigs.get(jobName);
job.cleanup();
jobConfigs.remove(jobName);
}
}