SMTPAppender只在循环缓冲区中保存最后一个BufferSize日志事件。这使得内存需求保持在合理的水平,同时仍然提供有用的应用程序上下文。缓冲区中的所有事件都包含在电子邮件中。缓冲区将包含最新级别的事件
跟踪
到
警告
在触发电子邮件的事件之前。
错误
或更高严重性的事件被记录,并将其格式化为HTML。可以通过在Appender上设置一个或多个过滤器来控制电子邮件何时发送的情况。
Log4j2 SMTPAppender
comment
这个
电子邮件发送
阈值滤波器
. 配置阈值筛选器会更改触发发送电子邮件的事件级别,但不会影响将保存在缓冲区中的内容。
更改记录器级别本身是不可行的,因为事件也应由其他附加程序处理。
<Appender>
....
<SMTP name="Mail" subject="Error Log"
to="${mailTo}" smtpHost="smtp.googlemail.com"
smtpProtocol="smtps" smtpPort="465" bufferSize="512"
smtpUsername="${smtpUsername}"
smtpPassword="${smtpPassword}">
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
</SMTP>
<Async name="AsyncMail">
<AppenderRef ref="Mail" />
</Async>
</Appenders>
<Loggers>
<Logger name="com.github.kilianB" level="trace">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="FILE" />
<AppenderRef ref="AsyncMail" />
</Logger>
</Loggers>