request = $request; $this->security = $security; $this->projectDir = $kernel->getProjectDir(); } public function processRecord(array $record): array { $request = $this->request->getCurrentRequest(); /** @var User $user */ $user = $this->security->getUser(); $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 7); if (! empty($request)) { $record['extra'] = [ 'client_ip' => $request->getClientIp(), 'client_port' => $request->getPort(), 'uri' => $request->getUri(), 'query_string' => $request->getQueryString(), 'method' => $request->getMethod(), ]; } if (! empty($user)) { $record['user'] = [ 'id' => $user->getId(), 'username' => $user->getUsername(), 'roles' => $user->getRoles(), ]; } $record['location'] = [ 'file' => '…/' . Path::makeRelative($trace[5]['file'], $this->projectDir), 'line' => $trace[5]['line'], 'class' => $trace[6]['class'], 'type' => $trace[6]['type'], 'function' => $trace[6]['function'], ]; return $record; } }