Spaces:
Sleeping
Sleeping
Download src/middleware/request_logging.py from minhtudragon/AI_Detector: direct link, hf CLI and curl.
- Browser
- Download file 1.11 kB
-
https://huggingface.co/spaces/minhtudragon/AI_Detector/resolve/main/src/middleware/request_logging.py
- Command line
-
hf download hf://spaces/minhtudragon/AI_Detector/src/middleware/request_logging.py
-
curl -L -o request_logging.py https://huggingface.co/spaces/minhtudragon/AI_Detector/resolve/main/src/middleware/request_logging.py
1.11 kB
| """Request logging middleware for timing.""" | |
| import time | |
| import logging | |
| from typing import Callable | |
| from fastapi import Request, Response | |
| from starlette.middleware.base import BaseHTTPMiddleware | |
| logger = logging.getLogger(__name__) | |
| class RequestLoggingMiddleware(BaseHTTPMiddleware): | |
| """Middleware to log request processing time.""" | |
| async def dispatch(self, request: Request, call_next: Callable) -> Response: | |
| """Process request with timing.""" | |
| start_time = time.time() | |
| # Log incoming request | |
| logger.info(f"Incoming request: {request.method} {request.url}") | |
| # Process request | |
| response = await call_next(request) | |
| # Calculate processing time | |
| process_time = time.time() - start_time | |
| # Log processing time | |
| logger.info(f"Request processed in {process_time:.4f}s - {request.method} {request.url} - Status: {response.status_code}") | |
| # Add processing time to response headers | |
| response.headers["X-Process-Time"] = str(process_time) | |
| return response |