前言

作为后端开发者,项目上线之后难免会遇到各种问题,一个良好且及时的异常通知机制可以让我们在项目的维护上避免很多不必要的麻烦。

本项目的开发愿景是为了给使用者在线上项目的问题排查方面能够带来帮助,简单配置,做到真正的开箱即用,同时异常信息尽量详细,帮助开发者快速定位问题。

目前支持基于钉钉和邮箱的异常通知,以后有时间还会扩展其他通知方式,同时也欢迎有兴趣的开发者能够参与进来,共同完善

使用方式

pom.xml中增加项目依赖

本项目现已发布到maven中央仓库,可以直接通过以下坐标引入依赖

<dependency><groupId>com.github.kongchong</groupId><artifactId>exception-notice-spring-boot-starter</artifactId><version>版本号</version></dependency>

钉钉配置

第一步:创建钉钉群 并在群中添加自定义机器人 对于不太了解钉钉机器人配置的同学可以参考:钉钉机器人

第二步:增加配置文件

以下以yml配置文件的配置方式为例

exception:notice:enable: 启用开关 false或不配置的话本项目不会生效projectName: 指定异常信息中的项目名,不填的话默认取 spring.application.name的值included-trace-package: 追踪信息的包含的包名,配置之后只通知此包下的异常信息period: 异常信息发送的时间周期 以秒为单位 默认值5,异常信息通知并不是立即发送的,默认设置了5s的周期,主要为了防止异常过多通知刷屏,同时钉钉针对异常通知刷屏的情况也增加了限流措施,建议不要修改exclude-exceptions:- 需要排除的异常通知,注意 这里是异常类的全路径,可多选## 钉钉配置ding-talk:web-hook: 钉钉机器人的webHook地址,可依次点击钉钉软件的头像,机器人管理,选中机器人来查看at-phones: - 钉钉机器人发送通知时 需要@的钉钉用户账户,可多选

邮箱配置

这里以qq邮箱为例

第一步:项目中引入邮箱相关依赖

<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

作者

  • 孔冲 1182701220@qq.com
  • 博客 http://www.kcblog.cn

异常信息_一个针对异常信息通知的springboot starter相关推荐

  1. python日历小程序_一个查看网络设备信息Python小程序

    原标题:一个查看网络设备信息Python小程序 网络编程中,最常见的一个问题就是,获取设备信息. 首先我们,要学习如何获取本机的网络信息.我们将用到标准库中的socket库.假如说,我们要查看本机的 ...

  2. python-异常处理_异常类型_处理的异常的方法

    异常处理 1. 异常的定义 ​ 异常是程序运行时发生错误的信号 , 一旦程序出错就会产生一个异常 ​ 如果该异常没有被处理 , 该异常就会被抛出来 , 程序的运行随之终止 2. 异常的组成 ​ 1. ...

  3. python 网络设备管理软件_一个查看网络设备信息Python小程序

    socket.gethostbyaddr(ip_address) 功能介绍 为了便于说明他们的功能,我们首先从Document中参考相关的说明 gethostname # gethostname签名 ...

  4. java的异常类_各种Java异常类大集合,精辟精辟精辟

    java.lang.ArithmeticException:算术条件异常.譬如:整数除零等. java.lang.ArrayIndexOutOfBoundsException:数组索引越界异常.当对数 ...

  5. 传感器怎么获取障碍物的宽度信息_基于多传感器信息融合的机器人障碍物检测...

    基于多传感器信息融合的机器人障碍物检测 王中立,牛颖(太原理工大学信息工程学院,山西太原030024) 摘要:针对单一传感器在机器人避障过程中不能全面且准确定位障碍物的缺点,提出基于多传感器信息融合的 ...

  6. 华硕spd信息_内存的SPD信息是个啥玩意?还可以造假?

    电脑在开机时,首先要对主板.CPU.内存条.SSD等硬件进行通电自检,在确认正常的情况下才能启动进入系统. 一般情况下,任何硬件没有完成通电自检,都会影响电脑的正常启动.尤其是内存条,一旦不被主板识别 ...

  7. java异常 json,记一个toJSONString异常

    异常 java.io.FileNotFoundException: Byte array resource [resource loaded from byte array] cannot be re ...

  8. python 语句执行顺序_一个针对 Python 语句执行顺序的练习

    摘自 Fluent Python evalsupport.py print(' evalsupport module start') def deco_alpha(cls): print(' deco ...

  9. python 分班_一个针对学生的阳光班级划分的python实现,接口由pysimplegui实现,分班,一种,界面...

    目前各地学校都被要求阳光分班,也就是公平公正的为学生安排班级,但是从实现上,好多是教务员手工复制.粘贴完成的,本文作者系教师,较为了解一线教师的辛苦,这里呈现一种python语言的实现,前几日发给一位 ...

最新文章

  1. Vaptcha验证码配置实现人机验证
  2. java中什么是递归_java中什么是递归
  3. 21天学通python电子版-小数据池,深浅拷贝,集合+菜中菜
  4. 题目1493:公约数
  5. ASP.NET如何给控件增加属性?
  6. domdocument php 扩展_php使用自带dom扩展进行元素匹配的原理解析
  7. 编码引出的问题_FileReader读取GBK格式的文件
  8. 【动态规划】方格取数 (ssl 1010)
  9. 微信开发者工具:Failed to load font ************** net::ERR_CONNECTION_RESET问题解决办法
  10. mysql rr和rc_MySQL Transaction--RC和RR区别
  11. Java Web图书管理系统总结(jsp+servlet+jdbc+javabean+dao)
  12. 20多个好用的 Vue 组件库
  13. 携程的产品与收入模式分析
  14. 中国MES市场主流厂商及产品分析
  15. 提高情商,从这几方面做
  16. Exception in thread “main“ java.io.NotSerializableException:
  17. 导弹拦截(动规,贪心)
  18. Linux之代理服务器squid安装和使用
  19. WiFi 基础(二)—— BSS、ESS、BSSID、ESSID、SSID
  20. 工业相机接口和采集卡

热门文章

  1. python 武沛齐_武沛齐 - 主页
  2. css如何插入动态图,css动态图(作业)
  3. c# image转换为bitmap_Python PIL.Image与numpy.array之间的相互转换
  4. java 运算符_详解Java表达式与运算符
  5. oracle1461,Oracle 10.2.0.3的ORA-1461错误
  6. 深度linux deepin 12.12,Linux Deepin 12.12 Beta 发布
  7. java后台处理excel_java后台利用Apache poi 生成excel文档提供前台下载示例
  8. 萝卜家园win11系统32位微软原版镜像v2021.08
  9. 傲游浏览器怎么看网页源代码 网页源代码查看方法简述
  10. 积米浏览器如何清除浏览数据