package de.skuzzle.polly.core.internal.mail; import org.apache.log4j.Logger; import de.skuzzle.polly.core.configuration.ConfigurationProviderImpl; import de.skuzzle.polly.core.internal.mail.senders.MailSender; import de.skuzzle.polly.core.moduleloader.AbstractProvider; import de.skuzzle.polly.core.moduleloader.ModuleLoader; import de.skuzzle.polly.core.moduleloader.SetupException; import de.skuzzle.polly.core.moduleloader.annotations.Module; import de.skuzzle.polly.core.moduleloader.annotations.Require; import de.skuzzle.polly.sdk.Configuration; @Module(requires = { @Require(component = MailConfig.class), @Require(component = ConfigurationProviderImpl.class) }) public class ErrorMailerProvider extends AbstractProvider { private final static Logger logger = Logger .getLogger(ErrorMailerProvider.class.getName()); public ErrorMailerProvider(ModuleLoader loader) { super("ERROR_MAILER_PROVIDER", loader, false); } @Override public void setup() throws SetupException { MailConfig mailCfg = this.requireNow(MailConfig.class, true); ConfigurationProviderImpl configManager = this.requireNow(ConfigurationProviderImpl.class, true); if (configManager.getRootConfiguration().readBoolean(Configuration.DEBUG_MODE)) { logger.warn("Disabling Error Mailer because polly debug mode is enabled"); return; } int delay = Integer.parseInt( mailCfg.readString(MailConfig.MAIL_DELAY)); MailSender sender = mailCfg.getSender(); EMailLogAppender appender = new EMailLogAppender( sender, mailCfg.getLevel(), delay, new EMailLogFormatter(mailCfg.getLevel())); Logger.getRootLogger().addAppender(appender); } }