/** * Log given HTTP request. * * @param array $request request data * @param array $response response data * @return void */ public function logRequest($request, $response) { $this->_requestCnt++; $this->_requestTime += $this->took; $separator = '[**snip**]'; $maxlength = $this->_requestLogLimitBytes - strlen($separator); $requestUri = $this->Http->url($request['uri']); $requestBody = $this->Http->request['body']; $responseBody = $this->Http->response['body']; if (strlen($requestBody) > $this->_requestLogLimitBytes) { $requestBody = substr_replace($requestBody, $separator, $maxlength / 2, strlen($requestBody) - $maxlength); } if (strlen($responseBody) > $this->_requestLogLimitBytes) { $responseBody = substr_replace($responseBody, $separator, $maxlength / 2, strlen($responseBody) - $maxlength); } $this->_requestLog[] = array( 'request_method' => $this->Http->request['method'], 'request_uri' => $requestUri, 'request_body' => h($requestBody), 'response_code' => $this->Http->response['status']['code'], 'response_type' => $this->Http->response->getHeader('Content-Type'), 'response_size' => strlen($this->Http->response['body']), 'response_body' => h($responseBody), 'query' => $this->Http->request['method'] . ' ' . $requestUri, 'params' => '', 'error' => '', 'affected' => '', 'numRows' => strlen($this->Http->response['body']), 'took' => $this->took ); if (count($this->_requestLog) > $this->_requestLogMax) { array_pop($this->_requestLog); } }