kocraft-backend/Craft/middleware/logging_middlewares.py

32 lines
1.1 KiB
Python
Raw Permalink Normal View History

2024-07-15 08:47:42 +00:00
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