package org.stagemonitor.alerting.alerter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.stagemonitor.alerting.AlertingPlugin; import org.stagemonitor.core.Stagemonitor; /** * An alerter that writes incidents to the log */ public class LogAlerter extends Alerter { private final Logger logger; private final AlertTemplateProcessor alertTemplateProcessor; public LogAlerter() { this(Stagemonitor.getPlugin(AlertingPlugin.class), LoggerFactory.getLogger(LogAlerter.class)); } public LogAlerter(AlertingPlugin alertingPlugin, Logger logger) { this.logger = logger; this.alertTemplateProcessor = alertingPlugin.getAlertTemplateProcessor(); } @Override public void alert(AlertArguments alertArguments) { String message = alertTemplateProcessor.processPlainTextTemplate(alertArguments.getIncident()); switch (alertArguments.getIncident().getNewStatus()) { case CRITICAL: case ERROR: logger.error(message); break; default: logger.warn(message); } } @Override public String getAlerterType() { return "Log Alerts"; } @Override public String getTargetLabel() { return null; } }