Lu Xianghui преди 1 месец
родител
ревизия
f20753ed81
променени са 1 файла, в които са добавени 14 реда и са изтрити 1 реда
  1. 14 1
      app/main.py

+ 14 - 1
app/main.py

@@ -1,6 +1,10 @@
+from copy import deepcopy
+from typing import Any
+
 from fastapi import FastAPI, Request
 from fastapi.exceptions import RequestValidationError
 from fastapi.responses import JSONResponse
+from uvicorn.config import LOGGING_CONFIG
 
 from app.api.bacnet import router as bacnet_router
 from app.api.modbus import router as modbus_router
@@ -8,6 +12,15 @@ from app.api.s7 import router as s7_router
 from app.response import response_payload
 
 
+def uvicorn_log_config() -> dict[str, Any]:
+    config = deepcopy(LOGGING_CONFIG)
+    config["formatters"]["default"]["fmt"] = "%(asctime)s %(levelprefix)s %(message)s"
+    config["formatters"]["default"]["datefmt"] = "%Y-%m-%d %H:%M:%S"
+    config["formatters"]["access"]["fmt"] = '%(asctime)s %(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s'
+    config["formatters"]["access"]["datefmt"] = "%Y-%m-%d %H:%M:%S"
+    return config
+
+
 def validation_error_message(exc: RequestValidationError) -> str:
     messages: list[str] = []
     for error in exc.errors():
@@ -57,4 +70,4 @@ app = create_app()
 def main() -> None:
     import uvicorn
 
-    uvicorn.run(app, host="0.0.0.0", port=8000)
+    uvicorn.run(app, host="0.0.0.0", port=8000, log_config=uvicorn_log_config())