From 61edc2750927e0a3b1285dbb5ff2ed34984c5cc6 Mon Sep 17 00:00:00 2001 From: qmqz Date: Tue, 9 Sep 2025 16:15:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=AF=B7=E6=B1=82=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/base/webserver/impl/ShelfWebServer.dart | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/base/webserver/impl/ShelfWebServer.dart b/lib/base/webserver/impl/ShelfWebServer.dart index 652712d..1c2e873 100644 --- a/lib/base/webserver/impl/ShelfWebServer.dart +++ b/lib/base/webserver/impl/ShelfWebServer.dart @@ -23,21 +23,37 @@ class ShelfWebServer implements WebServer { ShelfWebServer(this.logger); final String tag = "webserver"; + Stream> encodeStream( + String data, { + Encoding encoding = utf8, + }) async* { + yield encoding.encode(data); + } + + Future decodeStream(Stream> stream, + {Encoding encoding = utf8}) { + return encoding.decodeStream(stream); + } + // 中间件:记录请求日志 Middleware logRequests() { return (Handler innerHandler) { return (Request request) async { + String body = await request.readAsString(); + request = request.change(body: body); final requestId = request.context['request_trace_id'] as String; final requestSpanId = request.context['request_span_id'] as String; final requestParentSpanId = request.context['request_parent_span_id'] as String?; - logger.info('| 请求路径: ${request.method} ${request.requestedUri}', + + logger.info('| 请求路径: ${request.method} ${request.requestedUri} $body', tag: tag, traceId: requestId, spanId: requestSpanId, parentSpanId: requestParentSpanId); // final stopwatch = Stopwatch()..start(); final stopwatch = request.context["request_stop_watch"] as Stopwatch; + stopwatch.start(); Response response; try {