SpringBoot整合log4j發(fā)送系統(tǒng)異常郵件:實時掌控你的系統(tǒng)健康狀態(tài)

Exception Mail

由于時間寶貴,有時候?qū)懖┛途蜎]寫那么詳細,有什么地方不明白的話可以通過微信聯(lián)系到我,我在我的某一篇文章中留下過自己的微信二維碼,歡迎來騷擾....

系統(tǒng)發(fā)生異常時,郵件提醒


通過Log4j就可以實現(xiàn)這項功能,只需要簡單配置一下

pom依賴去除

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--去除Springboot自帶的日志包-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
log4j坐標依賴
<!--SpringBoot - log4j-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.3.8.RELEASE</version>
        </dependency>
<!--log4j 實現(xiàn)發(fā)郵件必須包-->
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
javax.mail
<!--javax.mail-->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

log4j.properties(名字必須叫l(wèi)og4j.properties Spring容器才會掃描到)

log4j.properties
log4j.rootLogger=info,console,MAIL
log4j.logger.org.apache.mina.filter.logging.LoggingFilter=WARN
log4j.logger.com.playsnail.core.web.filter.IdentityFilter=WARN
log4j.logger.com.d1xn.common.log.Log=WARN
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%p-%d{yyyy/MM/dd/HH\:mm\:ss}]%c{1}.(%L) - %m%n
log4j.appender.console.Threshold=INFO

######################send error through email.######################
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#日志的錯誤級別
log4j.appender.MAIL.Threshold=ERROR
#緩存文件大小,日志達到2時發(fā)送Email
#log4j.appender.MAIL.BufferSize=2
#發(fā)送郵件的服務器
log4j.appender.MAIL.SMTPHost=smtp.126.com
#郵件主題
log4j.appender.MAIL.Subject=AwesomeBoy_LP Community Exception Mail
#發(fā)送郵件箱的用戶
log4j.appender.MAIL.SMTPUsername=calistaangel@126.com
#發(fā)送郵件箱的密碼
log4j.appender.MAIL.SMTPPassword=******
#發(fā)送郵件箱
log4j.appender.MAIL.From=******@126.com
#接受郵件箱
log4j.appender.MAIL.To=******@126.com
#發(fā)送郵件的格式
log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout

簡易測試 :logger.error

/**
 * @Author:LiuPu
 * @Date:2018/9/5 17:11
 * @Description:
 * @Version 1.011
 */
public class Logtest {
    @Test
    public void logtest() {
        Logger logger = Logger.getLogger(Logtest.class);
        try {
            int i = 0;
            int b = 10;
            int c = b/i;
        } catch (Exception e) {
            // TODO: handle exception
            String currentTime = DateUtils.getCurrentTime12();
            logger.error("異常發(fā)生時間:"+currentTime,e);
        }
    }
}

DateUtils:

/**
 * @Author:LiuPu
 * @Date:2018/9/5 16:45
 * @Description:時間格式化工具
 * @Version 1.011
 */
public class DateUtils {
    public static String getCurrentTime24(){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String currentTime = dateFormat.format(new Date());
        return currentTime;
    }

    public static String getCurrentTime12EN(){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd a hh:mm:ss",Locale.ENGLISH);
        String currentTime = dateFormat.format(new Date());
        return currentTime;
    }

    public static String getCurrentTime12CHS(){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd a hh:mm:ss");
        String currentTime = dateFormat.format(new Date());
        return currentTime;
    }
}
異常郵件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容