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="name@new4g.cn" />
<property name="email_to" value="name@new4g.cn" />
<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