请求日志

This commit is contained in:
张松
2025-08-15 18:19:12 +08:00
parent 5f1e79996c
commit 6d5d58e0e6
2 changed files with 52 additions and 1 deletions

View File

@@ -12,8 +12,11 @@
* @license http://www.opensource.org/licenses/mit-license.php MIT License * @license http://www.opensource.org/licenses/mit-license.php MIT License
*/ */
use support\LogMiddleware;
return [ return [
'' => [ '' => [
app\middleware\AccessControl::class app\middleware\AccessControl::class,
LogMiddleware::class
] ]
]; ];

48
support/LogMiddleware.php Normal file
View File

@@ -0,0 +1,48 @@
<?php
namespace support;
use Webman\Http\Request;
use Webman\Http\Response;
use Webman\MiddlewareInterface;
class LogMiddleware implements MiddlewareInterface
{
public function process(Request $request, callable $handler): Response
{
// 定义颜色
$green = "\033[32m"; // 标题/分隔
$yellow = "\033[33m"; // 方法/状态码
$blue = "\033[34m"; // URL
$cyan = "\033[36m"; // 参数/头信息
$magenta = "\033[35m"; // Body
$reset = "\033[0m"; // 重置
// 打印请求日志
$requestLog = $green . "====== 请求开始 ======" . $reset . "\n" .
"方法: " . $yellow . $request->method() . $reset . "\n" .
"URL: " . $blue . $request->url() . $reset . "\n" .
"GET参数: " . $cyan . json_encode($request->get(), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . $reset . "\n" .
// "请求头: " . $cyan . json_encode($request->header(), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . $reset . "\n" .
"Body: " . $magenta . $request->rawBody() . $reset;
Log::info($requestLog);
// 处理请求
$response = $handler($request);
// 获取响应内容并截取前200字符
$bodySnippet = mb_substr($response, 0, 200);
// 打印响应日志
$responseLog = $green . "====== 请求结束 ======" . $reset . "\n" .
"Body前200: " . $magenta . $bodySnippet . $reset;
Log::info($responseLog);
return $response;
}
}