update request log middleware

This commit is contained in:
2026-03-17 12:45:22 +08:00
parent 2ebe78833e
commit 1448b2b4a4
2 changed files with 9 additions and 3 deletions
@@ -53,8 +53,8 @@ class RequestLogMiddleware implements MiddlewareInterface
$response_code = self::extractResponseCode($response);
// 异步协程写库,不阻塞响应返回
Coroutine::create(static function () use (
// defer 写库:在当前协程退出时执行,响应返回客户端,同时保证协程内 DB 连接可用
Coroutine::defer(static function () use (
$user_id, $method, $path, $status_code, $ip,
$user_agent, $request_body, $response_code, $duration_ms
): void {
@@ -110,7 +110,12 @@ class RequestLogMiddleware implements MiddlewareInterface
}
try {
$body = (string) $response->getBody();
$stream = $response->getBody();
$body = (string) $stream;
// 回退流指针,避免后续读取得到空内容
if ($stream->isSeekable()) {
$stream->rewind();
}
$data = json_decode($body, true);
if (is_array($data) && isset($data['code'])) {
return (int) $data['code'];
+1
View File
@@ -11,5 +11,6 @@ declare(strict_types=1);
*/
return [
'http' => [
\App\Middleware\RequestLogMiddleware::class,
],
];