| import logging | |
| from fastapi import FastAPI, HTTPException, Request, status | |
| from fastapi.encoders import jsonable_encoder | |
| from fastapi.responses import JSONResponse | |
| logger = logging.getLogger(__name__) | |
| def init_error_handlers(app: FastAPI): | |
| async def exception_handler(request: Request, e: Exception): | |
| logger.error(f"Error during request: {e}", exc_info=e) | |
| return JSONResponse( | |
| status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, | |
| content=jsonable_encoder({"error": str(e)}), | |
| ) | |
| async def http_exception_handler(request: Request, e: HTTPException): | |
| logger.error(f"Error during request: {e}", exc_info=e) | |
| return JSONResponse( | |
| status_code=e.status_code, | |
| content=jsonable_encoder({"error": str(e)}), | |
| ) | |