diff options
Diffstat (limited to 'src/main/java/org/torproject/collector/cron/CollecTorMain.java')
| -rw-r--r-- | src/main/java/org/torproject/collector/cron/CollecTorMain.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/org/torproject/collector/cron/CollecTorMain.java b/src/main/java/org/torproject/collector/cron/CollecTorMain.java index 7a00e68..21d8948 100644 --- a/src/main/java/org/torproject/collector/cron/CollecTorMain.java +++ b/src/main/java/org/torproject/collector/cron/CollecTorMain.java @@ -4,6 +4,7 @@ package org.torproject.collector.cron; import org.torproject.collector.conf.Configuration; +import org.torproject.collector.conf.ConfigurationException; import org.torproject.collector.conf.Key; import org.slf4j.Logger; @@ -18,11 +19,36 @@ import java.util.concurrent.TimeUnit; public abstract class CollecTorMain implements Runnable { + private static Logger log = LoggerFactory.getLogger(CollecTorMain.class); + protected Configuration config; public CollecTorMain( Configuration conf) { this.config = conf; } + /** + * Log errors preventing successful completion of the module. + */ + @Override + public final void run() { + log.info("Starting {} module of CollecTor.", module()); + try { + startProcessing(); + } catch (ConfigurationException | RuntimeException ce) { + log.error("The {} module failed: {}", module(), ce.getMessage(), ce); + } + log.info("Terminating {} module of CollecTor.", module()); + } + + /** + * Module specific code goes here. + */ + protected abstract void startProcessing() throws ConfigurationException; + + /** + * Returns the module name for logging purposes. + */ + public abstract String module(); } |
