FastAPI

FastAPI中怎么实现API日志记录

小亿
655
2024-05-10 16:44:57
栏目: 编程语言

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

0
看了该问题的人还看了