本文1302字,需要3.25分钟
之前我们说过利用「钉钉群」来通知 Laravel 的异常,但我们发现钉钉的作用更多的是通知我们有异常了,要跟进异常问题了。
我们还是需要有一个地方,很直观的来汇总异常和分析异常,总不能每次出现问题我们都去服务器上看项目的 Log 吧。
在 Laravel 的文档说明中,推荐使用 Bugsnag 或 Sentry:
所有异常都由 App\Exceptions\Handler 类处理。 这个类包含两个方法:report 和 render。report 方法用于记录异常或将其发送到外部服务,如 Bugsnag 或 Sentry。默认情况下,report 方法只是简单地将异常传递给记录异常的基类。你可以根据需要来记录异常。
摘自:https://laravel-china.org/docs/laravel/5.5/errors/1303
今天我们推荐用于搭建 Sentry 工具,收集项目异常。
Sentry
Stop hoping your users will report errors
Open-source error tracking that helps developers monitor and fix crashes in real time. Iterate continuously. Boost efficiency. Improve user experience.
简言之,Sentry 是一个日志平台,主要分为客户端和服务端,客户端嵌入到我们的应用程序中,当应用出现异常时,就会向服务端发送异常信息,服务端则将信息记录到数据库汇总,并提供 web 方式,方便我们对异常进行查看和分析,避免于我们需要登录自己的服务器后台去查看生硬的 log 文件。
getsentry/onpremise
Official bootstrap for running your own Sentry with Docker.
https://github.com/getsentry/onpremise
利用 docker 安装工具,是最好的方式,因为如果觉得不合适,直接 rm,不会影响到我们的服务器环境。
安装
按照 README 说明的来就行:
我们把端口改成 9999:9000,接着就是利用 nginx 或者其他服务器工具进行方向代理,配置二级域名,关联到该端口上。
nginx 配置
配置二级域名反向解析到该 9999 端口上,比较简单,直接看:
使用 Sentry
使用 Sentry,主要是创建一个项目,生成一个客户端密钥 (DSN)。
创建项目
当 new 一个项目时,你会发现,Sentry 可以集成的项目语言涵盖很多,如、、、等等
当然,我们先选择尝试使用,创建好后,会出现一篇如何集成到客户端的说明文档:
当然也包含了 DSN。
创建好了项目后,接下来就是看看如何集成到客户端使用了。
Laravel 项目集成
根据文档提示,我们一步步操作,安装插件:
添加代码,捕获异常:
添加配置文件
在 env 配置文件上,添加刚才创建的 DNS:
利用 Artisan 测试看看:
test 发送的 event id 和 Sentry 项目中获取的 event id 一致。
总结
工具的使用就是为了方便我们平时开发使用。有了 Sentry,我们可以将不同项目的异常都放在 Sentry 上去汇总和分析。
不仅仅 Laravel 项目,其他的项目如VUE 的,我们也可以把异常实时推送到 Sentry 上。
至于如何使用好 Sentry,以及使用 Sentry 提供的 API 等。有待于我们的实际生成和开发中,需要去不断熟悉使用了。
以后有时间也会写写 Sentry 使用心得。
coding01 期待您继续关注