php - Sentry PHP - 确定异常/事件是否实际发送成功
问题描述
我已经将针对 Sentry 本地安装的 PHP 库实现到一个运行良好的项目中,当它设置为工作时我对功能没有任何问题。
我想做的是确定由于任何原因实际哨兵记录何时失败,但是努力寻找应用程序流中哨兵返回可用于确定“记录成功”的位置。
我通过将Raven_Client
构造中使用的 DSN 地址更改为无效的 URL 来强制失败,并且可以确认没有记录事件 - 这是预期的。
SentryRaven_Client
公开了一个getLastEventID()
似乎在创建事件本身时包含 ID 的方法,而不是在成功提交到服务器时(我期望它是这样,并且已经检查以显示我的错误页面)。
还有一个getLastError()
方法,在我的应用程序(CodeIgniter)进入该My_Exceptions::show_exception()
方法以向客户端显示错误页面时为空。
SentryID 已填充,错误为空,我不确定还有什么可用于检查以了解错误报告实际上未能记录。
我想这样做的原因是我可以向用户显示不同的视图(没有说“已通知支持”;因为他们没有)以及检查$sentryEventId
并显示自定义反馈的功能表单显然需要隐藏,因为 sentryEventId 无效并且反馈不会去任何地方。
解决方案
如果您使用的是 Sentry PHP SDK 的 1.10.0 版本,并且没有使用任何异步方式发送事件(默认),getLastEventID()
那么null
如果send
操作失败。
另请参阅引入此更改的 PR。
推荐阅读
- css - Bootstrap 4 - 导航栏搜索表单最小宽度
- reactjs - React 自动完成元素以及在列表中添加值(如果不存在)的选项
- node.js - 未找到 Socket.io 客户端错误 404
- aspnetboilerplate - 升级到 3.6.2 后 JSON 序列化程序不工作
- php - 限制对 PHP 上的管理按钮的访问
- c# - 如何执行取决于策略的多项操作?
- spring-boot - 收到消息 MessageDeliveryException: Dispatcher 没有订阅者时
- laravel-5.5 - Laravel 类型错误:函数参数太少
- node.js - nodejs fs.writeFile不在Windows上调用回调
- javascript - 为什么在控制台中交换 == 的参数会改变输出?