在laravel中使用日志号显示生产模式下的错误

Far*_*han 6 error-handling logging runtime-error laravel eloquent

我有一个内置于laravel 5.8的应用程序,它处于生产模式。由于该网站已上线,我不想向我们的用户显示任何错误。但是如果发生了一些错误,那么我想要日志号或任何指示在特定时间抛出什么错误的参考。

所以我想知道是否有任何方法可以向我们的用户显示“糟糕,出现问题 ref#123456”。这样他们就可以向我们发送屏幕截图或参考编号,我们可以通过检查我们的日志文件来跟踪实际发生的情况。

提前致谢。快乐编码。

小智 6

我认为您可以将日志保存在数据库中并呈现其 ID。

您可以在以下位置执行此操作App\Exceptions\Handlerhttps://laravel.com/docs/5.8/errors

例如:

    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Throwable  $exception
     * @return \Symfony\Component\HttpFoundation\Response
     *
     * @throws \Throwable
     */
    public function render($request, Throwable $exception)
    {
        // Create log in db
        $log = Log::create([
            'message' => $exception->getMessage(), 
            'code' => $exception->getCode(),
            'line' => $exception->getLine(),
        ]);

        // Print log id in logs
        logger("LogId {$log->id}");

        //Return view error with log id
        return return response()->view('errors', ['logId' => $log->id]);
    }

Run Code Online (Sandbox Code Playgroud)