一、Sentry介绍
Sentry提供基于云的自托管错误监控,可帮助所有软件团队实时发现,分类和确定错误的优先级,它支持很多端的配置,包括 web 前端、服务器端、移动端及其游戏端,同时支持各种语言,例如 python、oc、java、node、javascript 等,也可以应用到不同的框架。简单接下,想了解更多信息,请自行百度或官网查看
今天只介绍我们项目中运用到的一种方式,个人觉得也是最简单的一种,话不多说,直接上步骤
二、部署sentry
1. 直接从github上拉取最新的代码,里面有详细的docker安装步骤
https://github.com/getsentry/onpremise
2. 安装好了我们就可以直接访问我们本地9000,就会进入sentry主页如下图
三、集成spring boot
1. 引入maven坐标
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
<version>1.7.16</version>
</dependency>
2. 在resource⽂件夹下加⼊logback.xml
<configuration>
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<root level="INFO">
<appender-ref ref="Sentry" />
</root>
</configuration>
注:其他日志级别自行添加,我这里是列出了sentry的配置
3. 在resource⽂件夹下加⼊sentry.properties,名字不要写错
# dsn地址,在新建项目后setting里面可以找到
dsn=
# 环境
environment=
# 程序包前缀,多个用逗号分隔
stacktrace.app.packages=
配置还有很多,dsn,environment都可以配置环境变量上,更简洁一些,我们项目就是使用的这种方式。更多配置请看官网https://docs.sentry.io/clients/java/config/
到这里项目中就配置完了,是不是so easy!
因为项目都会有统一异常处理类,所以只需要在统一异常处理类中,将错误信息用log.error日志打印出来就行,即使没有被统一异常捕获的错误,sentry依然会记录。
四、新建项目
1. 登陆到sentry页面,如图操作
注意:这里第2步很关键,千万不要选错了,选成java之类的,因为之前我同事建的一个项目就选的java,错误日志一直不推送,但sentry上面却会记录一些warning日志,显然是sentry是有记录的,就是错误日志不会记录过来,这个错误一直找了两天才发现,就很郁闷。
第3步就根据自己的实际情况填写就行
2. 获取项目dsn
点击项目->菜单栏Settings->左边菜单栏Client Keys(DSN)
到这里就大功告成了,直接在项目报一个错误就可以测试了,我这里就不贴出我们项目的数据了,有兴趣的自己动手试试!
五、总结
使用Sentry有很多的好处,特别是能实时的知道项目的状况,而且项目有错误信息的时候会实时给你发一封邮件,让你更快去解决。通过Sentry我们项目发现了很多奇葩的问题,有自己代码的问题也有与第三方交互的问题,虽然有些错误并不会对项目造成影响,但是我们写代码就应该有匠人精神,精益求精,逐步完善。我这里只介绍了我们项目中运用到的一种方式,在Sentry官网上还有很多,有兴趣的伙伴可以多去了解了解,多交流交流。