php - 无法使用 Laravel 5.1 将 user_context 传递到 Sentry

标签 php laravel exception middleware sentry

我的目标是将电子邮件或 ID 等用户上下文传递到 Sentry,这样我就可以看到哪些用户破坏了某些内容。

我已经配置了一个全局中间件来将用户上下文添加到我的 Sentry 错误中。这是类(class):

        class AddUserToSentry
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

        if(Auth::user())
        {
            //dd(Auth::user()->email);
            app('sentry')->user_context(array(
                'email' => Auth::user()->email
            ));
        }
        return $next($request);
    }
}

在我的 Handler.php 中,我有:

 /**
 * Report or log an exception.
 *
 * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
 *
 * @param  \Exception  $e
 * @return void
 */
public function report(Exception $e)
{

    if ($this->shouldReport($e)) {
        app('sentry')->captureException($e);

    }
    parent::report($e);
}

我缺少什么来完成这项工作?我获得的用户上下文只是 IP 地址,这对我的情况没有多大帮助。

非常感谢,

乔什

最佳答案

这是一个完整的示例,source来自官方 Sentry 文档。为了避免添加use Auth;,您可以简单地使用auth()辅助函数。

namespace App\Http\Middleware;

use Closure;

class SentryContext
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure                 $next
     *
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (app()->bound('sentry')) {
            /** @var \Raven_Client $sentry */
            $sentry = app('sentry');

            // Add user context
            if (auth()->check()) {
                $sentry->user_context(['id' => auth()->user()->id, 'email' => auth()->user()->email]);
            }

            // Add tags context
            // $sentry->tags_context(['foo' => 'bar']);
        }

        return $next($request);
    }
}

关于php - 无法使用 Laravel 5.1 将 user_context 传递到 Sentry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384898/

相关文章:

mysql - 在 Laravel 的 Eloquent 或普通 SQL 中计数点

java - 如何使用 Spring 过滤并抛出自定义异常?

php - 图表中来自数据库的 fusionCharts 数据

php - SQL 选择等号字母

PHP Include 不使用 bootstrap 下拉菜单

Python 仍然抛出我已明确排除的异常

python - 使用异常处理以防止系统崩溃时出现几行

php - 添加收到新订单时的声音

php - Laravel Eloquent 属于不工作

laravel - Blade 语法错误,字符串变量为空