Update logging middleware for FastAPI - Enhanced logging with request tracking, performance monitoring, and security logging

This commit is contained in:
2025-10-06 08:45:07 +02:00
parent 721326ecaf
commit 2199d256b6
3 changed files with 265 additions and 30 deletions

View File

@@ -37,6 +37,7 @@ from pydantic_settings import BaseSettings
# Import our custom middleware
from web.middleware.fastapi_auth_middleware import AuthMiddleware
from web.middleware.fastapi_validation_middleware import ValidationMiddleware
from web.middleware.fastapi_logging_middleware import EnhancedLoggingMiddleware
# Configure logging
logging.basicConfig(
@@ -251,38 +252,10 @@ app.add_middleware(
)
# Add custom middleware
app.add_middleware(EnhancedLoggingMiddleware)
app.add_middleware(AuthMiddleware)
app.add_middleware(ValidationMiddleware)
# Request logging middleware
@app.middleware("http")
async def log_requests(request: Request, call_next):
"""Log all incoming HTTP requests for debugging."""
start_time = datetime.utcnow()
# Log basic request info
client_ip = getattr(request.client, 'host', 'unknown') if request.client else 'unknown'
logger.info(f"Request: {request.method} {request.url} from {client_ip}")
try:
response = await call_next(request)
# Log response info
process_time = (datetime.utcnow() - start_time).total_seconds()
logger.info(f"Response: {response.status_code} ({process_time:.3f}s)")
return response
except Exception as exc:
logger.error(f"Request failed: {exc}", exc_info=True)
return JSONResponse(
status_code=500,
content={
"success": False,
"error": "Internal Server Error",
"code": "REQUEST_FAILED"
}
)
# Add global exception handler
app.add_exception_handler(Exception, global_exception_handler)