我在我的应用中使用log4j2.2。我希望在应用程序出现错误时收到电子邮件。
所以我配置了一个smtp appender:
<SMTP name="Mailer" subject="Ecall logs" to="${receipients}"
from="${from}" smtpHost="${smtpHost}" smtpPort="${smtpPort}"
smtpProtocol="${smtpProtocol}" smtpUsername="${smtpUser}"
smtpPassword="${smtpPassword}" smtpDebug="true" bufferSize="200"
ignoreExceptions="false">
</SMTP>
我将它添加到根记录器中:
<root level="error">
<appender-ref ref="Console" />
<appender-ref ref="AsyncFile" />
<appender-ref ref="Mailer" />
</root>
遗憾的是,在此配置中,当应用程序出现错误时,我从未收到过电子邮件。事实上,我还有一些其他自定义记录器:
<logger level="info" name="org.flywaydb" additivity="false">
<appender-ref ref="Console" />
<appender-ref ref="AsyncFile" />
</logger>
使用100行缓冲区为整个应用程序配置smtp记录器(捕获所有包中的所有错误)的正确方法是什么,以便查看错误之前/之后发生的事情?
答案 0 :(得分:1)
您可能发现了一个错误。 SMTP appender应在收到ERROR级别的日志事件时发送电子邮件。它会尝试包含&#34; bufferSize&#34;在错误之前的事件(从TRACE到WARN)。
我不认为SMPT appender 需要任何先前的非ERROR事件,但您可以尝试这样做:
<root level="trace">
<appender-ref ref="Console" level="error"/>
<appender-ref ref="AsyncFile" level="error"/>
<appender-ref ref="Mailer" level="trace"/>
</root>
如果问题仍然存在,请在log4j2 Jira问题跟踪器上提出一张票。