gpt4 book ai didi

java - Log4j2 smtp 附加程序不适用于根记录器

转载 作者:行者123 更新时间:2023-12-01 11:42:47 26 4
gpt4 key购买 nike

我在我的应用程序中使用 log4j2.2。我希望在应用程序出现错误时收到电子邮件。

所以我配置了一个 smtp 附加程序:

<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 记录器(捕获所有包中的所有错误)以便查看错误之前/之后发生的情况,哪种方法是正确的?

最佳答案

您可能发现了一个错误。 SMTP appender应在收到错误级别日志事件时发送电子邮件。它将尝试包含错误发生之前的“bufferSize”事件(从 TRACE 到 WARN)。

我认为 SMPT 附加程序不需要任何先前的非错误事件,但您可以尝试一下:

<root level="trace">
<appender-ref ref="Console" level="error"/>
<appender-ref ref="AsyncFile" level="error"/>
<appender-ref ref="Mailer" level="trace"/>
</root>

如果问题仍然存在,请在 log4j2 Jira 问题跟踪器上提交票证。

关于java - Log4j2 smtp 附加程序不适用于根记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29391440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com