feat: add comprehensive request and error logging

Add logging infrastructure:
- RequestLoggingMiddleware: logs all requests with method, path, status, timing
- ExceptionLoggingMiddleware: catches and logs unhandled exceptions with stack traces
- configure_logging(): structured logging with configurable level via LOG_LEVEL env var

Add detailed auth flow logging:
- Login initiation
- Token exchange success/failure
- JWKS fetch success/failure
- Token verification
- User lookup/creation
- Database errors
- Final response

This enables tracing Internal Server Errors through the logs.
This commit is contained in:
Fusion
2026-05-18 22:22:56 +02:00
parent c1a4d2d9af
commit 843683d579
3 changed files with 179 additions and 36 deletions
+12
View File
@@ -1,4 +1,5 @@
import logging
import os
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
@@ -12,10 +13,21 @@ from src.api.tool_types import router as tool_types_router
from src.api.user_config import router as user_config_router
from src.api.users import router as users_router
from src.database import SessionLocal, init_database
from src.logging_config import (
ExceptionLoggingMiddleware,
RequestLoggingMiddleware,
configure_logging,
)
from src.models.tool_type import ToolType
# Configure logging early
log_level = os.getenv("LOG_LEVEL", "INFO").upper()
configure_logging(level=getattr(logging, log_level, logging.INFO))
logger = logging.getLogger(__name__)
app = FastAPI(title="Headquarter API")
app.add_middleware(RequestLoggingMiddleware)
app.add_middleware(ExceptionLoggingMiddleware)
async def _table_exists(session, table_name: str) -> bool: