Files
urbanLifeline/difyPlugin/app/core/middleware.py

27 lines
736 B
Python
Raw Normal View History

2025-12-30 13:38:32 +08:00
"""中间件定义"""
import time
import logging
from fastapi import Request
from starlette.middleware.base import BaseHTTPMiddleware
logger = logging.getLogger(__name__)
class RequestLoggingMiddleware(BaseHTTPMiddleware):
"""请求日志中间件"""
async def dispatch(self, request: Request, call_next):
start_time = time.time()
response = await call_next(request)
process_time = time.time() - start_time
logger.info(
f"{request.method} {request.url.path} "
f"- Status: {response.status_code} "
f"- Time: {process_time:.3f}s"
)
response.headers["X-Process-Time"] = str(process_time)
return response