【发布时间】:2015-06-24 11:07:19
【问题描述】:
有没有办法在 LogBack 中配置 SMTPAppender 以满足以下条件?
- 将所有异常分组到一条消息中
- 仅在发生异常时发送每日日志报告
- 仅在一天中的特定时间将报告分组在一封电子邮件中发送一次。
我当前的实现远未完成上述操作,但目前它会在发生异常时发送 3 封电子邮件 - 异常消息、堆栈跟踪和缓冲区刷新。
<!-- Filter duplicate Log Messages - Very important for Email Reports -->
<turboFilter class="ch.qos.logback.classic.turbo.DuplicateMessageFilter">
<AllowedRepetitions>1</AllowedRepetitions>
<CacheSize>1000</CacheSize>
</turboFilter>
<!--
############################################################
BASIC APPENDER
############################################################
-->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} %-55(%X{user} %level [%thread] %logger{20}) - %msg%n</pattern>
</encoder>
</appender>
<!--
############################################################
EMAIL APPENDER
############################################################
-->
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<appender name="Email" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>SERVER</smtpHost>
<smtpPort>PORT</smtpPort>
<asynchronousSending>false</asynchronousSending>
<from>SENDER</from>
<to>RECIPIENT</to>
<subject>SUBJECT</subject>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} %-55(%X{user} %level [%thread] %logger{20}) - %msg%n</pattern>
</layout>
</appender>
<!--
############################################################
OTHER
############################################################
-->
<root level="INFO">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFile"/>
<appender-ref ref="Email"/>
</root>
【问题讨论】:
标签: java logging logback smtpappender