Fixes and improvements to to DecideRuleSequence/logToFile.

* DecideRuleSequence.java
    - use Spring Lifecycle start() to initialize logToFile
    - inject logger module as SimpleFileLoggerProvider, since we're in
      heritrix-modules and don't have access to CrawlerLoggerModule from
      heritrix-engine
* CrawlerLoggerModule.java
    - implement SimpleFileLoggerProvider
    - setupSimpleLog() - use 'T' instead of '+' between date and time in
      timestamp
* SimpleFileLoggerProvider.java
    new interface with one method, setupSimpleLog()
* Scoper.java
    do not call scope.start()/scope.stop(), these are handled using Spring
    Lifecycle now
* DecideRule.java
    remove unused, unneeded start()/stop()
This commit is contained in:
nlevitt
2011-01-07 02:09:31 +00:00
parent bdd7f7e1ab
commit dd439dac3b
5 changed files with 63 additions and 25 deletions
@@ -107,7 +107,6 @@ public abstract class Scoper extends Processor implements Lifecycle {
this.getClass().getName(),
Logger.getLogger(this.getClass().getName()));
}
scope.start();
isRunning = true;
}
@@ -118,7 +117,6 @@ public abstract class Scoper extends Processor implements Lifecycle {
if(fileLogger!=null) {
fileLogger.close();
}
scope.stop();
isRunning = false;
}
@@ -43,6 +43,7 @@ import org.archive.crawler.io.UriErrorFormatter;
import org.archive.crawler.io.UriProcessingFormatter;
import org.archive.crawler.util.Logs;
import org.archive.io.GenerationFileHandler;
import org.archive.modules.SimpleFileLoggerProvider;
import org.archive.modules.extractor.UriErrorLoggerModule;
import org.archive.net.UURI;
import org.archive.spring.ConfigPath;
@@ -60,7 +61,7 @@ import org.springframework.context.Lifecycle;
public class CrawlerLoggerModule
implements
UriErrorLoggerModule, Lifecycle, InitializingBean,
Checkpointable {
Checkpointable, SimpleFileLoggerProvider {
private static final long serialVersionUID = 1L;
protected ConfigPath path = new ConfigPath(Engine.LOGS_DIR_NAME,"logs");
@@ -277,7 +278,7 @@ public class CrawlerLoggerModule
Logger logger = Logger.getLogger(logName + ".log");
Formatter f = new Formatter() {
private SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd+HH:mm:ss.SSS");
private SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
public String format(java.util.logging.LogRecord record) {
String timestamp = dateFmt.format(new Date(record.getMillis()));