/** * @return array */ public function jsonSerialize() { $logArray = ['action' => $this->getAction(), 'started_at' => $this->getRequestStartedAt()->format('c'), 'started_ms' => TimeHelper::convertDateTimeToMillitime($this->getRequestStartedAt()), 'total_time' => $this->getTotalTime(), 'code' => $this->getResponseCode(), 'severity' => $this->getSeverity(), 'caller_id' => $this->getCallerId(), 'caller_action' => $this->getCallerAction(), 'user_id' => $this->getUserId(), 'host' => $this->getHost(), 'ip' => $this->getIp(), 'request_info' => ['query_parameters' => $this->getHttpRequestInformation()->getQueryParameters(), 'headers' => $this->getHttpRequestInformation()->getHeaders(), 'url' => $this->getHttpRequestInformation()->getUrl(), 'method' => $this->getHttpRequestInformation()->getMethod(), 'body_parameters' => $this->getHttpRequestInformation()->getBodyParameters()], 'exceptions' => $this->getExceptions(), 'message' => $this->getAdditionalData(), 'request_id' => $this->getRequestId()->getId()]; // Optional parameters if ($this->getDbCalls() !== null) { $logArray['db_calls'] = $this->getDbCalls(); } if ($this->getDbTime() !== null) { $logArray['db_time'] = $this->getDbTime(); } if ($this->hasLines()) { $logArray['lines'] = []; foreach ($this->getLines() as $line) { $logArray['lines'][] = [$line->getSeverity(), TimeHelper::convertDateTimeToMicrotime($line->getMicroTime()), $line->getMessage()]; } } return $logArray; }
/** * Line constructor. * @param int $severity * @param string $message * @param \DateTime $microTime */ public function __construct($severity = Expression\Severity::UNKOWN, $message = '', \DateTime $microTime = null) { $this->severity = $severity; $this->message = $message; $this->microTime = $microTime ? $microTime : TimeHelper::getMicrotime(); }