异常信息_一个针对异常信息通知的springboot starter

前言

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

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

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

使用方式

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服务,然后就能看到授权码了

注意:钉钉和邮箱配置支持单独和同时启用

配置好了配置文件,接下来可以写个例子测试一下了

073edb9e980c40c080d11b403ac55929.png

如上图所示,在一个测试方法中手动抛出了一个参数错误异常,接下来运行一下看一下效果

钉钉效果:

b12563d36f6491aeb3130d0a46bf6479.png

邮箱效果:

b9e64356e5f658c3572534dc2287e4da.png

由于报错太多没有全部截图下来,感兴趣的同学可以自行测试一下

注意

本工具仅支持集成在springboot+mvc项目中,同时需要jdk版本1.8+

致谢

本项目参考以下项目:

  1. prometheus-spring-boot-starter

作者

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2使用教学_建水三中智能交互式液晶一体机设备投入使用

“张老师&#xff0c;一体机的使用会了吗&#xff1f;”“一体机在教学中好用吗&#xff1f;”“告别多年粉笔加黑板的教学方式&#xff0c;不用再吸入粉笔灰了。”2月25日清晨&#xff0c;建水三中的老师们议论纷纷&#xff0c;大家关注的是如何操作使用教室里安装的一体机。建…

数据结构折半查找算法C语言,数据结构C语言实现----折半查找

运行结果&#xff1a;代码如下&#xff1a;#include//数组初始化函数void Array_get(int array[],int max){printf("请输入一个数组&#xff0c;大小从低到高&#xff0c;各个数字间以空格隔开&#xff1a;");for (size_t i 0; i < max; i){scanf("%d"…

生活中的算法的实际举例_驾校学的技术,在实际生活中,你能运用自如吗?

学驾照的过程不用说&#xff0c;每一个经历过的人都有着刻骨铭心的记忆。很多人认为自己流了很多汗水&#xff0c;付出了很多精力在练车场上摸爬滚打&#xff0c;这下肯定把驾驶技术给夯实了&#xff0c;以后开车上路一点问题也没有。但是事情真的是这样吗&#xff0c;驾校学的…

470p 更换固态硬盘_联想G510换固态硬盘遇到的问题

唉&#xff01;更正一下吧&#xff01;电脑识别光驱位机械硬盘没有成功&#xff0c;出现了新问题&#xff0c;偶尔能识别出来&#xff0c;通常情况下不能识别出来&#xff0c;正在寻找解决办法中.........现在对于刚发表的这篇文章&#xff0c;有点惭愧&#xff01;二更&#x…

linux指针赋值原子,x86_64处理器的指针赋值是原子操作吗?

如题&#xff0c; x86_64处理器的指针赋值是原子操作吗&#xff1f;说实话我很讨厌参与讨论那些似乎不确定东西&#xff0c;倒不是说我对未知不敬畏&#xff0c;而是参与讨论的人大多数都是似懂非懂&#xff0c;对&#xff0c;我说的不确定性指的是参与讨论的人的认知的不确定&…

tecplot批量导出图片_批量导出Excel图片,用这招,半分钟干的活别人一整天完不成...

上个星期&#xff0c;我的一个同学向我求助。她是公司的HR&#xff0c;老板让她把员工信息表中的照片导出到文件夹中&#xff0c;然后打包发送给行政部的文员打印出来。她公司有5000多人&#xff0c;她复制粘贴了整整一个上午&#xff0c;才导出了200多张照片&#xff0c;而且还…

填充table_Excel Power Query | 向下填充的逆过程

上期内容给大家讲解了关于图表精品图表 | Excel绘制“带有阈值分割的条形图和棒棒图”的制作方法。本期给大家讲解一下关于Power Query的知识 。如下图&#xff0c;将下面的数据向下填充逆过程。即将左侧的数据转换至右侧的数据。如果是从右往左的话是直接向下填充即可&#xf…

# 解析bt文件_磁力链接和BT种子使用方法

目前用的最多的是磁力链接和BT种子&#xff0c;不过好多人并不太会使用&#xff0c;因此写个教程给大家说明一下。何为磁力链接&#xff1a;简单地说&#xff0c;磁力链接是一种特殊链接&#xff0c;但是它与传统基于文件的位置或名称的普通链接(如http://xxx)不一样&#xff0…

easyexcel设置下拉选项不能覆盖_Wi-Fi经常掉线 这个设置要修改

在使用Wi-Fi的时候最大的问题是什么&#xff1f;小伙伴们肯定说&#xff0c;当然是掉线啦。Wi-Fi设备过多、路由器设置等问题造成的掉线断网问题咱们之前都说过了。有些小伙伴又反映自己的电脑在使用无线网络时&#xff0c;一段时间不用就会掉线&#xff0c;手机却一直连接很好…

google开源android工具,谷歌最强Android UI工具包霸榜Github,这份上手指南了解一下...

2019年&#xff0c;谷歌在I/O大会上公开开源了一个非捆绑工具包——Jetpack Compose&#xff0c;这是一个用于构建原生Android UI的现代化工具包。仅通过少量代码就能完成布局&#xff0c;且能够直接使用Kotlin来进行编写。Jetpack Compose工具包是围绕着composable函数来构建的…

重叠面积_重叠面积——动点产生的重叠面积问题

本文开始介绍重叠面积问题。顾名思义&#xff0c;此类问题主要是求两个几何图形的重叠部分的面积。解题的关键为画出图形&#xff0c;然后再表示面积。文中的中考真题选自以下地区&#xff1a;2019•资阳、2019•鸡西、2019黄冈【题1】(2019•资阳)在矩形ABCD中&#xff0c;连结…

鸿蒙os硬件要求,华为公布鸿蒙OS 2.0硬件安装要求:只要128K内存就能跑

9月10日下午&#xff0c;华为在东莞松山湖举办了2020开发者大会&#xff0c;鸿蒙OS 2.0正式发布。会后&#xff0c;华为软件部总裁王成录博士、华为软件部副总裁杨海松等接受了专访。谈及鸿蒙OS 2.0的规划&#xff0c;杨海松表示&#xff0c;大家非常期待的手机的Beta版本会在今…

android rtsp 延时,ijkplayer 单视频流直播延迟问题解决过程

一开始我尝试是通过设置ijkplayer的参数去修改延迟&#xff0c;参数的修改能把ijkplayer的开播延迟拉到200ms左右&#xff0c;但是随着播放时间增加延迟也在增加&#xff0c;然后带着问题去网上寻找答案&#xff0c;找到暴走大牙和Gongjia两位大神的解决方案&#xff0c;但是这…

html5svg在线编辑器,SVG to Canvas在线转换工具

https://github.com/samsha/svg2canvascanvg.js是的确实有人在做这样的事&#xff0c;canvg.js 就是一个将SVG转换成Canvas的工具库&#xff0c;甚至有些SVG的动画效果也能得到实现&#xff0c;但是canvg.js存在很多问题&#xff1a;不可避免的SVG兼容问题SVG是一种很复杂的矢量…

python3 上传文件到目标机器_通过python模块实现服务器和本地机器之间快速拷贝文件...

在实际的开发过程中&#xff0c;很多时候我们都不直接在本机上开发&#xff0c;一般都在远程服务器上开发并运行程序。比如三胖在实际开发中就会使用到很多台服务器&#xff1a;我有一台笔记本电脑&#xff0c;通过 ssh 连接着很多台服务器&#xff0c;我需要经常在不同的服务器…

鸿蒙系统有那些上市,鸿蒙上市整套系统究竟意味着什么

大家期待的鸿蒙系统已经上市&#xff0c;首先鸿蒙系统从自家的生态产品适配&#xff0c;大家熟知的华为笔记本&#xff0c;华为手机&#xff0c;华为平板&#xff0c;华为手表等&#xff0c;相比目前市场上的操作系统&#xff0c;IOS&#xff0c;安卓&#xff0c;微软Windows&a…

c# 时间格式化为英文_C# DateTime日期格式化

1. 分类DateTime调用ToString()传入的参数可分为制式和自定义两种&#xff1a;1) 制式&#xff1a;系统自带的&#xff0c;转入特定的单个字符就可转换为系统已设定好的格式。2) 自定义&#xff1a;自由组合日期代码(y、M、d、h、m、s、f)来展示丰富的日期格式。2. 制式类型说明…

html多个单元格合并单元格内容,excel怎样快速把多个单元格内容合并 合并多个单元格内容的设置方法...

excel是我们常用的办公软件&#xff0c;有时我们需要把多个单元个的内容合并到一个单元格里&#xff0c;那么excel怎样快速把多个单元格内容合并&#xff1f;下面小编带来合并多个单元格内容的设置方法&#xff0c;希望对大家有所帮助。合并多个单元格内容的设置方法&#xff1…

mysql5.5客户端_MySQL 5.5/5.6——概述 MySQL 客户端程序

本文内容 mysqlmysqladminmysqlcheckmysqldumpmysqlimportmysqlshowmysqlslap参考资料mysqlmysql 是一个可以输入行的 SQL 外壳&#xff0c;输入行可以编辑。它支持交互和非交互。当使用交互式&#xff0c;查询结果以一个 ASCII 表格式来显示。当使用非交互时(例如&#xff0c;…

第一次使用mysql_第一次使用mysql,求帮忙

我用的是navicate,怎么把里面的数据库备份出来放到另外一个服务器里面啊&#xff0c;那个里面也装的是navicate回复讨论(解决方案)没用过navicate&#xff0c;它是一个图形化工具&#xff0c;应该有导入导出的按钮&#xff0c;找找看。没用过navicate&#xff0c;它是一个图形化…