请求日志
This commit is contained in:
@@ -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
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