提问人:BahaMagician 提问时间:9/6/2023 更新时间:9/6/2023 访问量:132
如何在 Laravel 10 中记录验证异常
How to Log Validation Exceptions in Laravel 10
问:
我正在尝试追踪外部 API 向我的服务器发出请求的一个非常具体的问题。如何对异常处理程序进行更改,以便将请求验证异常记录在我的错误日志文件中?提前感谢您的任何帮助。
答:
1赞
Filano
9/6/2023
#1
php artisan make:exception
Log::error('验证错误: ' . $exception->getMessage());
0赞
Alika Matthew
9/6/2023
#2
转到您的app/Exceptions/Handler.php
编辑方法:register
use Illuminate\Support\Facades\Log;
use Illuminate\Validation\ValidationException;
/**
* Register the exception handling callbacks for the application.
*
* @return void
*/
public function register()
{
$this->reportable(function (Throwable $e) {
if ($e instanceof ValidationException) {
Log::error($e->getMessage(), $this->buildExceptionContext($e));
}
});
}
现在,每当发生验证错误时,它都会写入您的日志,而不会更改向最终用户报告的方式。
评论
0赞
BahaMagician
9/6/2023
谢谢。我试过这个,但不幸的是,这在 Laravel 10 中不起作用。
1赞
BahaMagician
9/6/2023
#3
感谢您的所有答案,但我能够在这里找到答案:https://stackoverflow.com/a/73066132/9980193
这是我添加到Handler.php的方法:
use Illuminate\Validation\ValidationException;
public function convertValidationExceptionToResponse(ValidationException $e, $request)
{
\Log::info([
'errors' => $e->errors(),
'request' => $request->all(),
]);
return parent::convertValidationExceptionToResponse($e, $request);
}
评论
Log::error("log text")