32 lines
1.1 KiB
Python
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 |