With my proposed change (extend SparkListener and make JobLogger a specific implementation of SparkListener), you only need a single JobLogger implementation (no need to have JobLoggerOff).