Spaces:
Running
Running
File size: 682 Bytes
a3c5442 25bfed8 a3c5442 25bfed8 a3c5442 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from __future__ import annotations
import logging
import time
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request
from starlette.responses import Response
logger = logging.getLogger("api.access")
class RequestLoggingMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next) -> Response:
start = time.time()
response = await call_next(request)
duration = (time.time() - start) * 1000
logger.info(
f"{request.method} {request.url.path} "
f"status={response.status_code} "
f"duration={duration:.1f}ms"
)
return response
|