服务器error日志自动发送至开发者邮箱

项目上有很多报错信息不能及时通知开发者,现在让错误日志自动发送开发者邮箱,易于发现问题与排查错误。本文日志用的是logback

首先添加邮箱依赖

        <!-- 邮件依赖 -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

然后添加在logback中添加

    <property name="CONSOLE_LOG_PATTERN"         value="%date{HH:mm:ss.SSS} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/>
    <property name="smtpHost" value="smtp.126.com" />  <!-- 邮箱stmp  需要去邮箱里设置开启stmp-->
    <property name="username" value="shanshuiko@126.com" />   <!-- 发送者的邮箱 -->
    <property name="password" value="********" />           <!--   发送者邮箱密码     -->
<property name="email_to" value="shanshuiko@126.com,18602567026@163.com" /> <!-- 接收者的邮箱 -->   
   <property name="SSL" value="true" />
  <property name="email_subject" value="URM预警" />  <!-- 邮件标题 ->

具体配置已在代码中注释,发送多人则多人邮箱用逗号隔开

  
<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>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
    </appender>

定义email,经测试filter不加也会输出错误日志

    <root level="INFO">
        <appender-ref ref="email"/>
    </root>

最后将email放入root

测试!!!

 

posted @ 2020-06-15 14:47  望山看海  阅读(239)  评论(0)    收藏  举报