Update logging middleware for FastAPI - Enhanced logging with request tracking, performance monitoring, and security logging
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user