rewrite JobLogger and implement SparkListener