Ich möchte eine Mail-Benachrichtigung in einer Java-Anwendung über log4j senden. Der erste Versuch mit der konfigurierten log4j.properties-Datei funktionierte jedoch wie ein Zauber. Aber da ich ein dynamisches Thema will, die in der Laufzeit erzeugt wird, habe ich versucht, die folgenden Befehle ein, ohne Erfolg:Log4J SMTPAppender Java
final static Logger logger = Logger.getRootLogger();
...
public static mail(String msg, String subj) {
SMTPAppender mailAppend = new SMTPAppender();
mailAppend.setBufferSize(3);
mailAppend.setSMTPHost("smtphostname");
mailAppend.setTo("[email protected]");
mailAppend.setSubject(subj);
logger.addAppender(mailAppend);
logger.error(msg);
}
Ausgang:
log4j:ERROR Message object not configured.
So habe ich verpasst einen notwendigen Getter?
Warum [Javamail-API] nicht (https://java.net/projects/javamail/pages/Home)? – Fildor
In der Anwendung verwende ich bereits Dateiprotokollierung über log4j für Trace und so weiter, so dass ich die einfachste Möglichkeit der Implementierung einer zusätzlichen ausgehenden Mail bei einem höheren prio dann verfolgen. – bhlx
Versuchen Sie also, Warnungen oder Fehlermeldungen zu senden? Wenn ja, würde ich einen speziellen Logger verwenden, nicht den Root-Logger selbst. Dann würde ich den Appender modifizieren, um das Thema zu wechseln, und nicht immer wieder ein neues hinzufügen. Wenn die Mails nichts mit Fehler/Logging zu tun haben, würde ich eine andere Mail-Lib verwenden. – Fildor