// +---------------------------------------------------------------------- namespace plugin\saiadmin\app\exception; use Throwable; use Webman\Http\Request; use Webman\Http\Response; use Webman\Exception\ExceptionHandler; use plugin\saiadmin\exception\ApiException; /** * 异常处理类 */ class Handler extends ExceptionHandler { public $dontReport = [ ApiException::class, ]; public function report(Throwable $exception) { if ($this->shouldntReport($exception)) { return; } $logs = ''; if ($request = \request()) { $user = getCurrentInfo(); $logs .= $request->method() . ' ' . $request->uri(); $logs .= PHP_EOL . '[request_param]: ' . json_encode($request->all()); $logs .= PHP_EOL . '[timestamp]: ' . date('Y-m-d H:i:s'); $logs .= PHP_EOL . '[client_ip]: ' . $request->getRealIp(); $logs .= PHP_EOL . '[action_user]: ' . var_export($user, true); $logs .= PHP_EOL . '[exception_handle]: ' . get_class($exception); $logs .= PHP_EOL . '[exception_info]: ' . PHP_EOL . $exception; } $this->logger->error($logs); } }