要在 FastAPI 中實現 API 日志記錄,可以使用 Python 內置的 logging 模塊。以下是一個示例代碼:
from fastapi import FastAPI
import logging
app = FastAPI()
# 配置日志記錄
logging.basicConfig(filename="api_log.txt", level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
# 日志記錄中間件
@app.middleware("http")
async def log_requests(request, call_next):
logger = logging.getLogger("api_logger")
logger.info(f"Received request: {request.method} {request.url}")
response = await call_next(request)
logger.info(f"Responded with: {response.status_code}")
return response
# 定義一個路由
@app.get("/")
async def read_root():
return {"Hello": "World"}
在上面的示例中,我們首先配置了日志記錄器,將日志記錄到名為 “api_log.txt” 的文件中,并設置記錄級別為 INFO。然后定義了一個中間件函數 log_requests
,它會在每次請求進入時記錄請求信息,并在請求響應時記錄響應信息。最后定義了一個簡單的路由 /
,當訪問根路由時返回一個簡單的 JSON 響應。
通過這種方式,我們可以在 FastAPI 中實現 API 的日志記錄。您可以根據需要擴展日志記錄功能,例如添加更多的日志信息、設置不同的日志級別等。