add api.log&errorlog->db

This commit is contained in:
2023-11-19 13:24:29 +09:00
parent 991c8e8083
commit a464297511
5 changed files with 61 additions and 3 deletions

View File

@@ -11,6 +11,11 @@ from app.core.auth import get_current_active_user
from app.core.celery_app import celery_app
from app import tasks
from fastapi.middleware.cors import CORSMiddleware
import logging
from app.core.apiexception import APIException, writedblog
from app.db.crud import create_log
from fastapi.responses import JSONResponse
import asyncio
Base.metadata.create_all(bind=engine)
@@ -37,6 +42,21 @@ app.add_middleware(
# request.state.db.close()
# return response
@app.on_event("startup")
async def startup_event():
logger = logging.getLogger("uvicorn.access")
handler = logging.handlers.RotatingFileHandler("Log/api.log",mode="a",maxBytes = 100*1024, backupCount = 3)
handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
logger.addHandler(handler)
@app.exception_handler(APIException)
async def api_exception_handler(request: Request, exc: APIException):
loop = asyncio.get_event_loop()
loop.run_in_executor(None,writedblog,exc)
return JSONResponse(
status_code=400,
content={"detail": f"{exc.error.content}"},
)
@app.get("/api/v1")
async def root():