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>