通过配置logback-spring.xml文件实现error级别日志邮件报警
一.查看logback-core jar包的版本号,确定是1.1.7以上的版本,如果不是配置之后启动时会报错。
logback为spring boot自带的包,按照以下方式覆盖:
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.8</version> </dependency>
二。添加必要的maven依赖
<!--邮件报警包--> <!-- https://mvnrepository.com/artifact/javax.mail/mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.codehaus.janino/janino --> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>3.0.7</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.activation/activation --> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency>
三,配置logback-spring文件
首先自定义一些变量
<!--邮件设置--> <property name="smtpHost" value="smtp.exmail.qq.com"/> <property name="smtpPort" value="25" /> <property name="email_from" value=""/> 发送者邮箱名称 <property name="username" value=""/> 发送者用户名称 <property name="email_to" value=""/> 接收者邮箱 <property name="password" value=""/> 发送者用户密码 <property name="SSL" value="false" /> <property name="email_subject" value="元数据警告"/> 邮件主题
添加appender
<appender name="errMailer" class="ch.qos.logback.classic.net.SMTPAppender"> <smtpHost>${smtpHost}</smtpHost> <smtpPort>${smtpPort}</smtpPort> <username>${username}</username> <password>${password}</password> <SSL>${SSL}</SSL> <asynchronousSending>false</asynchronousSending> <to>${email_to}</to> <from>${email_from}</from> <subject>${email_subject}</subject> <layout class="ch.qos.logback.classic.html.HTMLLayout"/> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> </appender>
将添加的appender加入以下列表中
<root level="info"> <appender-ref ref="error"/> <appender-ref ref="warn"/> <appender-ref ref="debug"/> <appender-ref ref="info"/> <appender-ref ref="stdout"/> <appender-ref ref="errMailer"/> </root>
实现