在 Laravel 5 中收听服务提供商中的错误

Listen to error in Service Provider in Laravel 5

我已经使用 Laravel 5 一段时间了,我正在为我的应用程序创建自己的日志记录层。

因为我想记录失败的查询,所以我决定为此创建一个服务提供商。

在服务提供商中我得到了这个代码:

public function boot()
{
    $this->app->error(function (QueryException $ex) {
        dd('test');
    });
}

这应该行得通,但行不通。我收到以下错误:

Call to undefined method Illuminate\Foundation\Application::error()

有人知道这里发生了什么变化。因为我在应用程序或容器 class 中找不到 error 方法。尚未在 forums/github 存储库中找到任何内容。

在 Laravel 5 中,捕捉错误的方式不同。 Source

您通过编辑 render() 方法在 app/Exceptions/Handler.php 中完成:

public function render($request, Exception $e)
{
    if ($this->isHttpException($e))
    {
        return $this->renderHttpException($e);
    }

    else if ($e instanceof QueryException)
    {
        dd('test');
    }

    else
    {
        return parent::render($request, $e);
    }
}

文档:http://laravel.com/docs/master/errors#handling-errors