logback傳送錯誤郵件
1.maven加入郵件傳送jar包
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
2.logback.xml加入下面程式碼
<!-- 郵件 -->
<property name="smtpHost" value="smtp.exmail.qq.com" />
<property name="username" value="
<property name="email_to" value="[email protected]" />
<property name="password" value="password" />
<property name="SSL" value="true" />
<property name="email_subject" value="xxxx預警" />
<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>${smtpHost}</smtpHost>
<Username>${username}</Username>
<Password>${password}</Password>
<SSL>${SSL}</SSL>
<to>${email_to}</to>
<from>${username}</from>
<subject>${email_subject}</subject>
<asynchronousSending>true</asynchronousSending>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %X{ip} %-5level %logger{35} - %message%n</pattern>
</layout>
</appender>
<!-- 加入email引數 -->
<root level="info">
<appender-ref ref="EMAIL"/>
</root>
3.java程式碼中log.error打印出來的內容,就會自動傳送到郵件中。傳送延遲在5秒內
4.加入標記,加入evaluator
<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>sendmail</marker>
</evaluator>
<smtpHost>${smtpHost}</smtpHost>
<Username>${username}</Username>
<Password>${password}</Password>
<SSL>${SSL}</SSL>
<to>${email_to}</to>
<from>${username}</from>
<subject>${email_subject}</subject>
<asynchronousSending>true</asynchronousSending>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %X{ip} %-5level %logger{35} - %message%n</pattern>
</layout>
</appender>
列印時候也加入標記
logger.error(MarkerFactory.getMarker("sendmail"),"預警傳送:"+e.getMessage());
5.參考資料
http://logback.qos.ch/manual/appenders.html