public function onKernelTerminate(PostResponseEvent $event) { /** @var Request $request */ $request = $event->getRequest(); if (!$this->isEnable || !$this->isLoggableRequest($request)) { return; } try { /** @var Response $response */ $response = $event->getResponse(); $route = $request->get('_route'); $content = $this->cleanSensitiveContent($route, $request->getContent()); $token = $this->tokenStorage->getToken(); $user = !is_null($token) ? $token->getUser() : null; $logRequest = new LogRequest(); $logRequest->setRoute($route)->setPath($request->getPathInfo())->setMethod($request->getMethod())->setQuery(urldecode($request->getQueryString()))->setContent($content)->setStatus($response->getStatusCode())->setIp($request->getClientIp())->setUser(!is_string($user) ? $user : null); if ($this->logResponse($response)) { $logRequest->setResponse($response->getContent()); } $this->em->persist($logRequest); $this->em->flush(); } catch (\Exception $e) { $this->logger->error(sprintf("LogRequest couldn't be persist : %s", $e->getMessage())); } }
/** * {@inheritDoc} */ public function getIp() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getIp', []); return parent::getIp(); }