要在 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 的日志记录。您可以根据需要扩展日志记录功能,例如添加更多的日志信息、设置不同的日志级别等。