Levi / backend /app /middleware.py
Manish Kumar
new
c07244c
Raw
History Blame Contribute Delete
811 Bytes
import time
import logging
from fastapi import Request
from fastapi.responses import Response
from starlette.middleware.base import BaseHTTPMiddleware
logger = logging.getLogger(__name__)
class LoggingMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next) -> Response:
start_time = time.time()
try:
response = await call_next(request)
duration = time.time() - start_time
if duration > 1.0:
logger.info(f"{request.method} {request.url.path} - {response.status_code} - {duration:.2f}s")
return response
except Exception as e:
duration = time.time() - start_time
logger.error(f"{request.method} {request.url.path} failed - {e} - {duration:.2f}s")
raise