package de.otto.edison.jobs.eventbus;
import de.otto.edison.jobs.eventbus.events.MessageEvent;
import de.otto.edison.jobs.eventbus.events.StateChangeEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogJobEventListener implements JobEventListener {
public static final Logger LOG = LoggerFactory.getLogger(LogJobEventListener.class);
@Override
public void consumeStateChange(final StateChangeEvent stateChangeEvent) {
LOG.info("jobType='{}' state changed to '{}' ('{}')", stateChangeEvent.getJobType(),
stateChangeEvent.getState(), stateChangeEvent.getJobId());
}
@Override
public void consumeMessage(final MessageEvent messageEvent) {
String msg = String.format("'%s': '%s'", messageEvent.getMessage(), messageEvent.getJobId());
switch (messageEvent.getLevel()) {
case INFO:
if (messageEvent.getMarker().isPresent()) {
LOG.info(messageEvent.getMarker().get(), msg);
} else {
LOG.info(msg);
}
break;
case WARNING:
if (messageEvent.getMarker().isPresent()) {
LOG.warn(messageEvent.getMarker().get(), msg);
} else {
LOG.warn(msg);
}
break;
case ERROR:
if (messageEvent.getMarker().isPresent()) {
LOG.error(messageEvent.getMarker().get(), msg);
} else {
LOG.error(msg);
}
}
}
}