diff --git a/olist_code/server.py b/olist_code/server.py index b12cbde..6bc2738 100644 --- a/olist_code/server.py +++ b/olist_code/server.py @@ -3,6 +3,7 @@ from __future__ import annotations import json +import logging import uuid from contextlib import asynccontextmanager from typing import Any, cast @@ -64,6 +65,24 @@ async def lifespan(_app: FastAPI): lifespan=lifespan, ) +logging.basicConfig(level=logging.INFO, format="%(message)s") +_access_logger = logging.getLogger("olist_code.access") + + +@app.middleware("http") +async def log_user_agent(request: Request, call_next): + response = await call_next(request) + user_agent = request.headers.get("user-agent", "-") + _access_logger.info( + '"%s %s HTTP/%s" %s user-agent=%r', + request.method, + request.url.path, + request.scope.get("http_version", "1.1"), + response.status_code, + user_agent, + ) + return response + @app.exception_handler(AuthError) async def auth_error_handler(_request: Request, exc: AuthError) -> JSONResponse: