9 java logging logback smtpappender
这是一个包含我的Logback的片段SMTPAppender:
<appender name="logManager-smtpAppender" class="ch.qos.logback.classic.net.SMTPAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>NEUTRAL</onMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<asynchronousSending>false</asynchronousSending>
<smtpHost>my.smtp.host</smtpHost>
<to>john.smith@example.com</to>
<from>no-reply@example.com</from>
<username>my_smtp_user</username>
<password>my_smtp_password</password>
<subject>%logger{20} - %m</subject>
<layout class="ch.qos.logback.classic.html.HTMLLayout"/>
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
</appender>
Run Code Online (Sandbox Code Playgroud)
当以下Java执行时:
logger.warn("This is a warning.");
logger.error("This is an error.");
Run Code Online (Sandbox Code Playgroud)
我只收到1封电子邮件.通过设置bufferSize为1,我希望在每个电子邮件中获得2个不同的电子邮件,每个电子邮件中包含1条单个日志消息.这是怎么回事?
正如Ceki已经提到过SMTPAPpender会在级别错误的事件上触发电子邮件.要通过一封邮件获取所有日志,可以增加缓冲区大小
10
这里通过将bufferSize增加到10,您将获得错误记录的最后10条消息.
请查看以下链接:https : //github.com/abdulwaheed18/Slf4jTutorial/blob/master/src/com/waheed/tutorial8/Application8.java https://github.com/abdulwaheed18/Slf4jTutorial/blob/master/sample8.xml
传出电子邮件的触发由" 评估者 " 计算.默认情况下,SMTPAppender附带OnErrorEvaluator,它会触发级别为ERROR或更高级别的事件的电子邮件.因此,默认情况下,SMTPAppender将在第二条消息(级别为ERROR)而不是第一条消息(WARN)上发送电子邮件.要在WARN上触发传出消息,请编写自己的评估程序.这是代码:
public class OnWarnEvaluator extends EventEvaluatorBase<ILoggingEvent> {
public boolean evaluate(ILoggingEvent event) throws NullPointerException,
EvaluationException {
return event.getLevel().levelInt >= Level.WARN_INT;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6410 次 |
| 最近记录: |