You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Don McClean <d-...@ti.com> on 2002/10/21 17:57:53 UTC
SMTPAppender does not use fallback error handler when error occurs
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="d-mcclean@ti.com"/>
<param name="From" value="SEMIViewer@ti.com"/>
<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: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>