请求日志
This commit is contained in:
48
support/LogMiddleware.php
Normal file
48
support/LogMiddleware.php
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user