前言
不怕犯错误,就怕出了错误不能及时处理,怎么快速的定位问题,通常的做法都是上服务器,然后看相应的日志,这实在是太费力,也不直观,并且大多数时候,作为开发的我们没有登录生产环境的权限。很多人会提出elk日志平台,对于我们来说太重了,有没有更轻量级的框架,我分享一个轻量级的工具sentry。
推荐理由
1 开源(可以注册一个账号直接使用,也可以自己搭建)
2 集成简单,只需要简单配置即可用
3 对于代码没有侵入性
4 报错及时,并且可以发邮件通知
5 支持几乎所有的主流语言
原理
客户端利用SDK,将错误日志放进线程池,线程池异步地将错误日志发送给web服务器。
实践
1 注册一个账号(利用免费资源),或者自己搭建sentry(建议使用 Docker 安装)
如果自己搭建 建议使用地址: https://github.com/getsentry/onpremise.git
2 引入pom
<dependency> <groupId>io.sentry</groupId> <artifactId>sentry-logback</artifactId> <version>3.2.0</version> </dependency>
3 配置logback日志
dsn 值
<appender name="Sentry" class="io.sentry.logback.SentryAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 过滤的级别 --> <level>ERROR</level> <!-- 匹配时的操作:接收(记录) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配时的操作:拒绝(不记录) --> <onMismatch>DENY</onMismatch> </filter> <options> <dsn>https://xxxx/2620493</dsn> </options> </appender> <root level="info"> <appender-ref ref="sentry" /> </root>
4 测试
演示视频