log4j 的 SMTPAppender ——无法让它工作

发布于 2025-01-02 11:03:13 字数 4109 浏览 5 评论 0原文

我想将 SMTPAppender 添加到错误通知应用程序(tomcat 应用程序)。到目前为止我还无法让它发挥作用。我已经尝试使用 log4j.properties 文件中的配置以及 log4j.xml 配置进行配置。我在日志中没有看到任何与附加程序设置配置错误相关的错误。我根本没有看到任何电子邮件尝试。最初,我必须引入 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
[email protected]
[email protected]
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="[email protected]" />
    <param name="To" value="[email protected]" />
    <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>

有人看到任何阻止其工作的内容吗?我在日志中没有看到任何与配置相关的错误,但在发生错误时我也没有看到电子邮件。 谢谢

I'm tying to add the SMTPAppender to an application for error notification (tomcat app). I haven't been able to get it to work up to this point. I have tried it using configuration both in the log4j.properties file as well as through the log4j.xml configuration. I'm not seeing any errors in the log related to a misconfiguration of the appender setup. I'm just not seeing any email attempts at all. Initially I has to bring in javax.mail and javax.activation so I know that it's attempting to set up and use the SMTPAppender, but I'm not seeing anything as far as miconfiguration errors or emails that are sent when errors occur.

Here's the log4j.properties that I tried (changed the private info)

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
[email protected]
[email protected]
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

Here's the configuation that I tried in the log4j.xml file

<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="[email protected]" />
    <param name="To" value="[email protected]" />
    <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>

Anyone see anything that should keep this from working? I'm not seeing any configuration related errors in the log, but I'm also not seeing emails when errors occur.
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心安伴我暖 2025-01-09 11:03:13

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

Add this param to the CATALINA_OPTS env variable: -Dlog4j.debug It will print where it's picking up the logging configuration from.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文