首页 > 解决方案 > Sentry PHP - 确定异常/事件是否实际发送成功

问题描述

我已经将针对 Sentry 本地安装的 PHP 库实现到一个运行良好的项目中,当它设置为工作时我对功能没有任何问题。

我想做的是确定由于任何原因实际哨兵记录何时失败,但是努力寻找应用程序流中哨兵返回可用于确定“记录成功”的位置。

我通过将Raven_Client构造中使用的 DSN 地址更改为无效的 URL 来强制失败,并且可以确认没有记录事件 - 这是预期的。

SentryRaven_Client公开了一个getLastEventID()似乎在创建事件本身时包含 ID 的方法,而不是在成功提交到服务器时(我期望它是这样,并且已经检查以显示我的错误页面)。

还有一个getLastError()方法,在我的应用程序(CodeIgniter)进入该My_Exceptions::show_exception()方法以向客户端显示错误页面时为空。

SentryID 已填充,错误为空,我不确定还有什么可用于检查以了解错误报告实际上未能记录。

我想这样做的原因是我可以向用户显示不同的视图(没有说“已通知支持”;因为他们没有)以及检查$sentryEventId并显示自定义反馈的功能表单显然需要隐藏,因为 sentryEventId 无效并且反馈不会去任何地方。

标签: phpsentry

解决方案


如果您使用的是 Sentry PHP SDK 的 1.10.0 版本,并且没有使用任何异步方式发送事件(默认),getLastEventID()那么null如果send操作失败。

另请参阅引入此更改的 PR


推荐阅读