org.springframework.batch.core.LoggingJobExecutionListener Maven / Gradle / Ivy
The newest version!
package org.springframework.batch.core;
import java.util.Iterator;
import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LoggingJobExecutionListener implements JobExecutionListener {
protected final Log logger = LogFactory.getLog(getClass());
@Override
public void afterJob(JobExecution jobExecution) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n");
stringBuilder.append("Protocol for " + jobExecution.getJobInstance().getJobName() + " \n");
stringBuilder.append(" Started : " + jobExecution.getStartTime() + "\n");
stringBuilder.append(" Finished : " + jobExecution.getEndTime() + "\n");
stringBuilder.append(" Exit-Code : " + jobExecution.getExitStatus().getExitCode() + "\n");
stringBuilder.append(" Exit-Descr. : " + jobExecution.getExitStatus().getExitDescription() + "\n");
stringBuilder.append(" Status : " + jobExecution.getStatus() + "\n");
stringBuilder.append("+++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n");
stringBuilder.append("Job-Parameter: \n");
JobParameters jobParameters = jobExecution.getJobParameters();
for (Iterator> iterator = jobParameters.getParameters().entrySet().iterator(); iterator.hasNext();) {
Entry entry = iterator.next();
stringBuilder.append(" " + entry.getKey() + "=" + entry.getValue() + "\n");
}
stringBuilder.append("+++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n");
for (StepExecution stepExecution : jobExecution.getStepExecutions()) {
stringBuilder.append("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n");
stringBuilder.append("Step " + stepExecution.getStepName() + " \n");
stringBuilder.append("WriteCount: " + stepExecution.getWriteCount() + "\n");
stringBuilder.append("Commits: " + stepExecution.getCommitCount() + "\n");
stringBuilder.append("SkipCount: " + stepExecution.getSkipCount() + "\n");
stringBuilder.append("Rollbacks: " + stepExecution.getRollbackCount() + "\n");
stringBuilder.append("Filter: " + stepExecution.getFilterCount() + "\n");
stringBuilder.append("+++++++++++++++++++++++++++++++++++++++++++++++++++++++ \n");
}
if (logger.isInfoEnabled()) {
logger.info(new String(stringBuilder));
}
}
@Override
public void beforeJob(JobExecution jobExecution) {
// ignore
}
}