All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy