在 Sentry 中捕获用户信息

Capture user info in Sentry

我最近才开始在我的 Laravel 5.1 应用程序中使用 Sentry。

我在文档和入门资料中看到了对 capturing user information 的引用。

他们给出的传递这个的例子是这样的:

Raven.setUserContext({
    email: 'foo@example.com'
});

在遵循他们的 setup instructions for Laravel 之后,我没有看到关于它可以去哪里的参考,也没有在文档中看到任何关于如何在配置文件或任何 Laravel 中设置它的参考。

关于如何设置它以发送用户信息的任何想法?用户在使用我的应用程序时将始终处于登录状态。

我知道这个问题已经三个月了,如果您已经找到答案,我们深表歉意。

我有相同的要求(在 Sentry 中记录用户作为异常的一部分)所以我自己做了一点挖掘。

Raven.setUserContext() 似乎是 JavaScript SDK 特有的功能。 PHP SDK 在 Raven 客户端上有一个 set_user_data($id, $email, $data) 方法,您可以在您的应用程序的某个地方使用它(很可能在您实际将异常发送到 Sentry 之前在您的异常处理程序中使用)。

像这样的东西应该可以工作:

public function report(Exception $e)
{
    // Will only enter if statement if request has a user
    if ($user = request()->user()) {
        app('sentry')->set_user_data($user->getAuthIdentifier(), $user->email);
    }

    app('sentry')->captureException($e);

    return parent::report($e);
}