Log4j2 SMTP Appender Beispiel

fredi

Mitglied
Hallo zusammen,

ich hoffe ihr könnt mir bei folgender Frage helfen. Ich würde gerne über log4j2.properties nicht nur in ein Logfile schreiben sondern auch bei Fehlern eine Email schreiben. Im Internet habe ich einige Beispiele für log4j1 gefunden aber nicht wirklich eins für log4j2.

Folgendes steht in meiner properties Datei:

status = debug
name = Log4jPropertiesConfig

appenders = rolling,smtp

# RollingFileAppender name, pattern, path and rollover policy
appender.rolling.type = RollingFile
appender.rolling.name = fileLogger
appender.rolling.fileName= Log.log
appender.rolling.filePattern= ${basePath}/app_%d{yyyyMMdd}.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %level [%t] [%l] - %msg%n
appender.rolling.policies.type = Policies


# RollingFileAppender rotation policy
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 10MB
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.delete.type = Delete
appender.rolling.strategy.delete.basePath = ${basePath}
appender.rolling.strategy.delete.maxDepth = 10
appender.rolling.strategy.delete.ifLastModified.type = IfLastModified


# Delete all files older than 30 days
appender.rolling.strategy.delete.ifLastModified.age = 30d


appender.smtp=org.apache.log4j.net.SMTPAppender
appender.smtp.type=smtp
appender.smtp.name=email
appender.smtp.from= xyz
appender.smtp.to= xyz
appender.smtp.subject=Testing SMTPAppender
appender.smtp.bufferSize=512
appender.smtp.smtpProtocol=smtp
appender.smtp.smtpHost=
appender.smtp.smtpPort=25
appender.smtp.filter= error



# Configure root logger
rootLogger.level = info
rootLogger.appenderRef.rolling.ref = fileLogger




Beim ausführen bekomme ich folgende Fehlermeldung:


2022-06-15 11:01:59,860 main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.SmtpAppender for element smtp: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.SmtpAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.SmtpAppender
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:238)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:136)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1047)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1039)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:249)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:295)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:245)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:176)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:666)


Ich verwende log4j-api-2.17.2 und log4j-core-2.17.2

Danke im Voraus für eure Hilfe
 

fredi

Mitglied
Hallo nochmal,

ich habe das ganze mit eurer Hilfe zum laufen bekommen aber leider bekomme ich noch einen Fehler bzw. bin mir nicht sicher. Im Logfile sehe ich folgende Meldung

2022-06-27 10:12:24,611 main DEBUG Starting SmtpManager SMTP:email@test.de:::from@test.de::Testing SMTPAppender:smtp:smptpServer:25:::ERROR

Bezieht sich "ERROR" auf auf den Logging Level oder ist das ein wirklicher Error. Ich bekomme leider keine Emails zugeschickt obwohl ich einen Error logging Eintrag erstelle:

logger.error("Starting run..");

Danke im Voraus und viele Grüße
 

Ähnliche Java Themen

Neue Themen


Oben