laravel 报错没有写入日志
laravel的错误处理都在app/Exceptions/Handler.php里,为了方便处理验证类错误,我写了这么一段代码:
public function report(Throwable $throwable) { if ($throwable instanceof ValidationException){ ... } }
然后laravel就不记录日志了,实际上需要这么写:
if ($throwable instanceof ValidationException){ ... }else{ parent::report($throwable); }
report就是用来处理异常的,覆盖了父类的report肯定就不执行方法了。
laravel文档原文是这个:
如果你的异常中包含了仅在满足特定条件才报告的自定义报告逻辑,你可能需要指示 Laravel 使用默认的异常处理配置报告异常。你可以在异常的 report 方法中返回 false 实现这个:
/**
* 报告异常。
*
* @return bool|null
*/
public function report()
{
// 判断异常是否需要自定义报告...
return false;
}
这个需要在自定义exception中使用,不是在Handler.php中使用,切记。