Laravel 自定义所有抛出的异常

问题描述 投票:0回答:1

我正在尝试对异常日志进行一些更改并在 laravel 11 中渲染。

我想添加一个uuid到errors.500刀片并在日志之前记录它,但我真的不知道如何做,laravel文档只显示如何自定义自定义异常,而google专注于laravel 10或更旧版本,其中错误处理非常不同。

我不想进行自定义异常,成千上万的用户使用网络生成大量日志,我需要 uuid 在报告错误时跟踪错误,并确保我看到触发错误的正确日志行。

你能帮我吗?

php laravel exception
1个回答
0
投票

我最终这样做了。必须有更好的方法,但目前看来它有效。

我正在等待它在产品中内爆该项目。

    ->withExceptions(function (Exceptions $exceptions) {
        $exceptions->report(function (Exception $e) {
            return false;
        });
        
        $exceptions->respond(function ($response, $e) {
            
            if ($e instanceof AuthenticationException) {
                return $response;
            } else {
                $hash = \Illuminate\Support\Str::uuid()->toString();
                Log::error($hash);
                Log::error($e);
                $message = $e->getMessage(); 
                return response()->view("errors.500", ["hash" => $hash,"message" => $message], 500);
            }
        });
© www.soinside.com 2019 - 2024. All rights reserved.