在 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);
}
}
我已经使用 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);
}
}