From cdbe37de7d612bca32af83e01eec5cb23114a53f Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Tue, 4 Nov 2025 20:59:00 +0800 Subject: [PATCH] Update the interface timing accuracy in log (#897) * Update the interface timing accuracy in log * Update log request finish --- backend/middleware/access_middleware.py | 8 -------- backend/middleware/opera_log_middleware.py | 10 ++++++++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/backend/middleware/access_middleware.py b/backend/middleware/access_middleware.py index c7507634..c1f60db2 100644 --- a/backend/middleware/access_middleware.py +++ b/backend/middleware/access_middleware.py @@ -32,12 +32,4 @@ class AccessMiddleware(BaseHTTPMiddleware): response = await call_next(request) - if request.method != 'OPTIONS': - log.debug('<-- 请求结束') - - log.info( - f'{request.client.host: <15} | {request.method: <8} | {response.status_code: <6} | ' - f'{path} | {(time.perf_counter() - perf_time) * 1000:.3f}ms', - ) - return response diff --git a/backend/middleware/opera_log_middleware.py b/backend/middleware/opera_log_middleware.py index 816d97a9..3895e64c 100644 --- a/backend/middleware/opera_log_middleware.py +++ b/backend/middleware/opera_log_middleware.py @@ -51,7 +51,7 @@ class OperaLogMiddleware(BaseHTTPMiddleware): error = None try: response = await call_next(request) - elapsed = (time.perf_counter() - ctx.perf_time) * 1000 + elapsed = round((time.perf_counter() - ctx.perf_time) * 1000, 3) for e in [ '__request_http_exception__', '__request_validation_exception__', @@ -65,7 +65,7 @@ class OperaLogMiddleware(BaseHTTPMiddleware): log.error(f'请求异常: {msg}') break except Exception as e: - elapsed = (time.perf_counter() - ctx.perf_time) * 1000 + elapsed = round((time.perf_counter() - ctx.perf_time) * 1000, 3) code = getattr(e, 'code', StandardResponseCode.HTTP_500) # 兼容 SQLAlchemy 异常用法 msg = getattr(e, 'msg', str(e)) # 不建议使用 traceback 模块获取错误信息,会暴漏代码信息 status = StatusType.disable @@ -86,6 +86,12 @@ class OperaLogMiddleware(BaseHTTPMiddleware): log.debug(f'接口摘要:[{summary}]') log.debug(f'请求地址:[{ctx.ip}]') log.debug(f'请求参数:{args}') + log.info( + f'{request.client.host: <15} | {request.method: <8} | {response.status_code: <6} | ' + f'{path} | {elapsed:.3f}ms', + ) + if request.method != 'OPTIONS': + log.debug('<-- 请求结束') # 日志创建 opera_log_in = CreateOperaLogParam(