Cómo configurar SmtpAppender programáticamente en log4j2
El código en el que estoy trabajando es el siguiente:
El propósito es configurar SmtpAppender de forma programática. Junto con SmtpAppender, también necesito agregar RollingFileAppender y ConsoleAppender de forma programática.
package vish;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.appender.SmtpAppender;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.config.builder.api.LayoutComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuilder;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
public class SmtpAppenderBuilder {
public static void main(String[] args) {
String pattern = "%d{MM-dd@HH\\:mm\\:ss}%-4r %-5p [%t] %37c %3x - %m%n";
ConfigurationBuilder<builtconfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
LayoutComponentBuilder layoutBuilder = builder.newLayout("PatternLayout").addAttribute("pattern", pattern);
RootLoggerComponentBuilder rootLogger = builder.newRootLogger(Level.DEBUG);
builder.setStatusLevel(Level.DEBUG);
org.apache.logging.log4j.core.appender.SmtpAppender.Builder smtpBuilder = SmtpAppender.newBuilder();
smtpBuilder.setName("emailAppender");
smtpBuilder.setSmtpUsername("test1@gmail.com");
smtpBuilder.setSmtpPassword("###YpSv1925");
smtpBuilder.setSmtpProtocol("https");
smtpBuilder.setSmtpHost("smtp.gmail.com");
smtpBuilder.setBufferSize(512);
smtpBuilder.setTo("test2@gmail.com");
smtpBuilder.setSubject("testing");
}
}
¿Cómo debo agregar smtpAppender a la configuración o al rootLogger?
davy.ai
Para agregar el smtpAppender a la configuración, puedes usar el método
add
del constructor y pasar el smtpAppender como parámetro.Por ejemplo:
Para agregar el smtpAppender al rootLogger, puedes establecer el componente AppenderRef con el nombre del smtpAppender.
Por ejemplo:
Además, para agregar el RollingFileAppender y el Console appender, puedes seguir pasos similares:
Para agregar el RollingFileAppender:
Para agregar el Console appender:
Luego, puedes construir la configuración y usarla para inicializar el LogManager: