kocraft-backend/Craft/middleware/logging_middlewares.py
2024-07-15 08:47:42 +00:00

32 lines
1.1 KiB
Python

from fastapi import FastAPI, Request, HTTPException, Depends, status, Response
from fastapi.responses import JSONResponse
from datetime import datetime
from Craft.enums import LoggingLevel
from Craft.module.logging import Logger
def init_logging_middleware(app: FastAPI):
@app.middleware("http")
async def logging_middleware(request: Request, call_next):
try:
logger = Logger()
request_body = await request.body()
request = Request(
scope=request.scope,
receive=lambda: {"type": "http.request", "body": request_body},
)
response = await call_next(request)
#oneline_body = request_body.decode("utf-8").replace("\n", "")
logger.info(
f"Request: {request.method} {request.url.path} {request.client.host} {request.client.port}"
)
return response
except Exception as e:
print(e)
return JSONResponse(
status_code=500, content={"message": "Internal Server Error"}
)
return app