use of org.apache.logging.log4j.core.config.plugins.PluginConfiguration in project logging-log4j2 by apache.
the class SmtpAppender method createAppender.
/**
* Create a SmtpAppender.
*
* @param name
* The name of the Appender.
* @param to
* The comma-separated list of recipient email addresses.
* @param cc
* The comma-separated list of CC email addresses.
* @param bcc
* The comma-separated list of BCC email addresses.
* @param from
* The email address of the sender.
* @param replyTo
* The comma-separated list of reply-to email addresses.
* @param subject The subject of the email message.
* @param smtpProtocol The SMTP transport protocol (such as "smtps", defaults to "smtp").
* @param smtpHost
* The SMTP hostname to send to.
* @param smtpPortStr
* The SMTP port to send to.
* @param smtpUsername
* The username required to authenticate against the SMTP server.
* @param smtpPassword
* The password required to authenticate against the SMTP server.
* @param smtpDebug
* Enable mail session debuging on STDOUT.
* @param bufferSizeStr
* How many log events should be buffered for inclusion in the
* message?
* @param layout
* The layout to use (defaults to HtmlLayout).
* @param filter
* The Filter or null (defaults to ThresholdFilter, level of
* ERROR).
* @param ignore If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise
* they are propagated to the caller.
* @return The SmtpAppender.
*/
@PluginFactory
public static SmtpAppender createAppender(@PluginConfiguration final Configuration config, @PluginAttribute("name") @Required final String name, @PluginAttribute("to") final String to, @PluginAttribute("cc") final String cc, @PluginAttribute("bcc") final String bcc, @PluginAttribute("from") final String from, @PluginAttribute("replyTo") final String replyTo, @PluginAttribute("subject") final String subject, @PluginAttribute("smtpProtocol") final String smtpProtocol, @PluginAttribute("smtpHost") final String smtpHost, @PluginAttribute(value = "smtpPort", defaultString = "0") @ValidPort final String smtpPortStr, @PluginAttribute("smtpUsername") final String smtpUsername, @PluginAttribute(value = "smtpPassword", sensitive = true) final String smtpPassword, @PluginAttribute("smtpDebug") final String smtpDebug, @PluginAttribute("bufferSize") final String bufferSizeStr, @PluginElement("Layout") Layout<? extends Serializable> layout, @PluginElement("Filter") Filter filter, @PluginAttribute("ignoreExceptions") final String ignore) {
if (name == null) {
LOGGER.error("No name provided for SmtpAppender");
return null;
}
final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
final int smtpPort = AbstractAppender.parseInt(smtpPortStr, 0);
final boolean isSmtpDebug = Boolean.parseBoolean(smtpDebug);
final int bufferSize = bufferSizeStr == null ? DEFAULT_BUFFER_SIZE : Integer.parseInt(bufferSizeStr);
if (layout == null) {
layout = HtmlLayout.createDefaultLayout();
}
if (filter == null) {
filter = ThresholdFilter.createFilter(null, null, null);
}
final Configuration configuration = config != null ? config : new DefaultConfiguration();
final SmtpManager manager = SmtpManager.getSmtpManager(configuration, to, cc, bcc, from, replyTo, subject, smtpProtocol, smtpHost, smtpPort, smtpUsername, smtpPassword, isSmtpDebug, filter.toString(), bufferSize);
if (manager == null) {
return null;
}
return new SmtpAppender(name, filter, layout, manager, ignoreExceptions);
}
Aggregations