一個針對異常信息通知的springboot starter

前言

做爲後端開發者,項目上線以後不免會遇到各類問題,一個良好且及時的異常通知機制可讓咱們在項目的維護上避免不少沒必要要的麻煩。git

本項目的開發願景是爲了給使用者在線上項目的問題排查方面可以帶來幫助,簡單配置,作到真正的開箱即用,同時異常信息儘可能詳細,幫助開發者快速定位問題。github

目前支持基於釘釘和郵箱的異常通知,之後有時間還會擴展其餘通知方式,同時也歡迎有興趣的開發者可以參與進來,共同完善web

使用方式

pom.xml中增長項目依賴spring

本項目現已發佈到maven中央倉庫,能夠直接經過如下座標引入依賴後端

<dependency>
     <groupId>com.github.kongchong</groupId>
     <artifactId>exception-notice-spring-boot-starter</artifactId>
     <version>版本號</version>
  </dependency>
複製代碼

釘釘配置

第一步:建立釘釘羣 並在羣中添加自定義機器人 對於不太瞭解釘釘機器人配置的同窗能夠參考:釘釘機器人api

第二步:增長配置文件springboot

如下以yml配置文件的配置方式爲例bash

exception:
  notice:
    enable: 啓用開關 false或不配置的話本項目不會生效
    projectName: 指定異常信息中的項目名,不填的話默認取 spring.application.name的值
    included-trace-package: 追蹤信息的包含的包名,配置以後只通知此包下的異常信息
    period: 異常信息發送的時間週期 以秒爲單位 默認值5,異常信息通知並非當即發送的,默認設置了5s的週期,主要爲了防止異常過多通知刷屏,同時釘釘針對異常通知刷屏的狀況也增長了限流措施,建議不要修改
    exclude-exceptions:
      - 須要排除的異常通知,注意 這裏是異常類的全路徑,可多選
    ## 釘釘配置
    ding-talk:
      web-hook: 釘釘機器人的webHook地址,可依次點擊釘釘軟件的頭像,機器人管理,選中機器人來查看
      at-phones: 
        - 釘釘機器人發送通知時 須要@的釘釘用戶帳戶,可多選

複製代碼

郵箱配置

這裏以qq郵箱爲例mvc

第一步:項目中引入郵箱相關依賴app

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
  </dependency>
複製代碼

第二步:增長配置文件

exception:
  notice:
    enable: 啓用開關 false或不配置的話本項目不會生效
    projectName: 指定異常信息中的項目名,不填的話默認取 spring.application.name的值
    included-trace-package: 追蹤信息的包含的包名,配置以後只通知此包下的異常信息
    period: 異常信息發送的時間週期 以秒爲單位 默認值5,異常信息通知並非當即發送的,默認設置了5s的週期,主要爲了防止異常過多通知刷屏,同時釘釘針對異常通知刷屏的狀況也增長了限流措施,建議不要修改
    exclude-exceptions:
      - 須要排除的異常通知,注意 這裏是異常類的全路徑,可多選
    ## 郵箱配置
    mail:
      from: 發送人地址
      to: 接收人地址
      cc: 抄送人地址
spring:
 mail:
   host: smtp.qq.com  郵箱server地址 
   username: 1182701220@qq.com  server端發送人郵箱地址
   password: 郵箱受權碼

複製代碼

郵箱受權碼能夠按如下方法獲取

打開QQ郵箱網頁→設置→帳戶→POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務→開啓POP3/SMTP服務,而後就能看到受權碼了

注意:釘釘和郵箱配置支持單獨和同時啓用

配置好了配置文件,接下來能夠寫個例子測試一下了

如上圖所示,在一個測試方法中手動拋出了一個參數錯誤異常,接下來運行一下看一下效果

釘釘效果:

釘釘

郵箱效果:

郵箱

因爲報錯太多沒有所有截圖下來,感興趣的同窗能夠自行測試一下

注意

本工具僅支持集成在springboot+mvc項目中,同時須要jdk版本1.8+

致謝

本項目參考如下項目:

  1. prometheus-spring-boot-starter

做者

相關文章
相關標籤/搜索