#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ PerToolBox Server - 日志中间件 Copyright (C) 2024 Sea Network Technology Studio Author: Canglan License: AGPL v3 """ import time from fastapi import Request from ..utils.logger import logger async def log_requests(request: Request, call_next): start_time = time.time() logger.info(f"→ {request.method} {request.url.path}") response = await call_next(request) process_time = time.time() - start_time logger.info(f"← {request.method} {request.url.path} - {response.status_code} - {process_time:.3f}s") response.headers["X-Process-Time"] = str(process_time) return response