I am using the SMTPAppender to email log info when an error occurs. I wrote my own TriggeringEventEvaluator to use with the SMTPAppender. I also specified a fallback appender.
Normally everything works fine. However when our email system has a problem such as the mailserver being temporarily unavailable, I want the system to use the fallback appender to log the info to a file. Instead, I get an uncaught exception: ----------------------Begin stack trace ---------------------------------------- log4j:ERROR Error occured while sending e-mail notification. javax.mail.SendFailedException: Sending failed; nested exception is: class javax.mail.MessagingException: Could not connect to SMTP host: mailhost.ti.com, port: 25; nested exception is: java.net.NoRouteToHostException: Operation timed out: no further information at javax.mail.Transport.send0(Transport.java:218) at javax.mail.Transport.send(Transport.java:80) at org.apache.log4j.net.SMTPAppender.sendBuffer(Unknown Source) at org.apache.log4j.net.SMTPAppender.append(Unknown Source) at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221) at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57) at org.apache.log4j.Category.callAppenders(Category.java:187) at org.apache.log4j.Category.forcedLog(Category.java:372) at org.apache.log4j.Category.error(Category.java:286) at com.ti.semi.gui.SemiFileViewerFrame$4.finished(SemiFileViewerFrame.java:262) at com.ti.rts.gui.SwingWorker$1.run(SwingWorker.java:102) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154) at java.awt.EventQueue.dispatchEvent(EventQueue.java:317) at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:84) --------------------END Stack trace--------------------------------------------- I assumed the error would be caught and the log info would be forwarded to the fallback appender, but no info is written. My XML config file is: --------------------BEGIN CONFIG FILE--------------------------------- <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- ========================================================== --> <!-- Sample SMTPAppender configuration using the PatternLayout --> <!-- ========================================================== --> <log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'> <renderer renderedClass="com.ti.semi.util.KeyValue" renderingClass="com.ti.semi.util.KeyValueRenderer"/> <appender name="EMAIL" class="org.apache.log4j.net.SMTPAppender"> <errorHandler class="org.apache.log4j.varia.FallbackErrorHandler"> <root-ref/> <appender-ref ref="FALLBACK" /> </errorHandler> <param name="EvaluatorClass" value="com.ti.semi.gui.EmailTriggeringEventEvaluator"/> <param name="SMTPHost" value="mailhost.ti.com"/> <param name="To" value="[EMAIL PROTECTED]"/> <param name="From" value="[EMAIL PROTECTED]"/> <param name="Subject" value="RTS_APPLICATION=SemiViewer RTS_VERSION=1.0"/> <layout class="org.apache.log4j.HTMLLayout"/> </appender> <appender name="FALLBACK" class="org.apache.log4j.FileAppender"> <param name="File" value="${user.home}/.rts/SemiViewer.fallback"/> <param name="Append" value="true"/> <layout class="org.apache.log4j.xml.XMLLayout"/> </appender> <root> <level value ="info"/> <appender-ref ref="EMAIL" /> </root> </log4j:configuration> ----------------------------------------End Config file------------------------------- Can anyone help me? Thanks in advance, Don McClean -- To unsubscribe, e-mail: <mailto:log4j-user-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:log4j-user-help@;jakarta.apache.org>