httpRequest = $httpRequest; $this->requestLog = new RequestLog(); // 初始化请求日志 $this->requestLog->request_unid = RUN_UNIQID; $this->requestLog->path = $httpRequest->path(); $this->requestLog->method = $httpRequest->method(); $this->requestLog->headers = json_encode($httpRequest->headers->all()); $this->requestLog->ipaddress = $httpRequest->ip(); $this->requestLog->host = $httpRequest->getHost(); $this->requestLog->post = base64_encode($httpRequest->getContent()); $this->requestLog->sale_date = strtotime(date('Y-m-d')); $this->requestLog->save(); } public static function getDi() { if (!self::$di) { self::$di = new RequestLogger(request()); } return self::$di; } public function setResponse(Message $response) { $this->response = $response; } public function setError(string $error) { $this->requestLog->error = $error; } public function setRunTime(float $startTime) { $endTime = microtime(true); $this->requestLog->run_ms = intval(($endTime - $startTime) * 1000); } public function setProtobufJson(string $jsonData) { $this->requestLog->protobuf_json = $jsonData; } public function __destruct() { if ($this->response) { $this->requestLog->response = $this->response->serializeToJsonString(); } $this->requestLog->update(); } }