log4j的SMTPAppender - 无法使其工作

时间:2012-02-04 17:26:52

标签: configuration log4j mule smtpappender

我想将SMTPAppender添加到应用程序以进行错误通知(tomcat app)。到目前为止,我还没有完成它。我已经在log4j.properties文件中使用配置以及通过log4j.xml配置尝试了它。我没有在日志中看到与appender设置配置错误相关的任何错误。我根本没有看到任何电子邮件尝试。最初我必须引入javax.mail和javax.activation,所以我知道它正在尝试设置和使用SMTPAppender,但是我没有看到任何错误发生时发送的微观配置错误或电子邮件。

这是我尝试的log4j.properties(更改了私人信息)

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %d [%t] %c: %m%n

log4j.appender.email=org.apache.log4j.net.SMTPAppender
log4j.appender.email.Threshold=ERROR
log4j.appender.email.BufferSize=512
log4j.appender.email.To=myemail@mydomain.com
log4j.appender.email.From=from@mydomain.com
log4j.appender.email.SMTPHost=mysmtphost
log4j.appender.email.Subject=MULE -- error  
log4j.appender.email.layout=org.apache.log4j.PatternLayout
log4j.appender.email.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.email.SMTPUsername=mysmtpuser
log4j.appender.email.SMTPPassword=mysmtppassword

这是我在log4j.xml文件中尝试的配置

<appender name="console" class="org.apache.log4j.ConsoleAppender">      
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%5p (%F:%L) - %m%n" />
    </layout>
</appender>

<appender name="file" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="/apps/data/pbymuleservices.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="1000KB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%5p [%d{ISO8601}] (%F:%L) - %m%n"/>
    </layout>
</appender> 

<appender name="email" class="org.apache.log4j.net.SMTPAppender">
    <param name="BufferSize" value="512" />
    <param name="SMTPHost" value="mysmtphost" />
    <param name="SMTPUsername" value="mysmtpusername" />
    <param name="SMTPPassword" value="mysmtppassword" />
    <param name="From" value="fromemail@mydomain.com" />
    <param name="To" value="toemail@mydomain.com" />
    <param name="Threshold" value="error" />
    <param name="Subject" value="MULE -- Error" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="error" />
        <param name="LevelMax" value="fatal" />
    </filter>
</appender>

<logger name="com.mytoplevel.package" additivity="false">
    <level value="INFO"/>
    <appender-ref ref="console"/> 
    <appender-ref ref="file"/> 
</logger>

<logger name="org.mule" additivity="false">
    <level value="WARN"/>
    <appender-ref ref="console"/> 
    <appender-ref ref="file"/> 
</logger>

<logger name="com.mulesource" additivity="false">
    <level value="WARN"/>
    <appender-ref ref="console"/> 
    <appender-ref ref="file"/> 
</logger>               

<root>
    <priority value="error" />
    <appender-ref ref="console" />
    <appender-ref ref="file"/>
    <appender-ref ref="email"/> 
</root>

任何人都应该看到任何应该阻止它工作的东西?我没有在日志中看到任何与配置相关的错误,但在发生错误时我也没有看到电子邮件。 感谢

1 个答案:

答案 0 :(得分:1)

将此参数添加到CATALINA_OPTS env变量: -Dlog4j.debug 它将打印从中获取日志记录配置的位置。