python - 将 FastAPI 中的请求记录到项目目录中的特定文件中

标签 python logging request python-requests fastapi


我正在 FastAPI python 上为字典构建 API。
我是这个框架的新手,但我有点喜欢它,所以我想尝试一下。
作为要求的一部分,要求之一是将每个 HTTP 请求记录到我的项目内的特定文件 .log 文件中,而不是在服务器端。
我尝试使用中间件,但我无法弄清楚.. 因此,如果你们对如何做到这一点有任何想法,请帮助我,因为我找不到太多关于这个主题的信息。

因此,在我的 API enpdoints(例如 mysite.com/words)中生成的每个请求,我都必须将其记录在文件中,包括时间戳和其他一些不重要的信息,因为这是详细信息的一部分,但我想要的只是是能够获取每个请求并将它们记录到文本文件中..

提前谢谢您..

最佳答案

我在我的项目中使用 yaml 配置文件,它看起来像这样记录来自 uvicorn 的所有内容:

version: 1
disable_existing_loggers: no
    formatters:
        simple:
            format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
    handlers:
        ...
        uvicorn:
            class: logging.handlers.TimedRotatingFileHandler
            level: DEBUG
            formatter: simple
            when: D
            backupCount: 0
            filename: ./logs/uvicorn.log
    loggers:
        ...
        uvicorn:
            level: INFO
            handlers: [uvicorn]
            propagate: yes
            qualname: uvicorn

您可以将其改编为代码或仅在配置文件中使用它

关于python - 将 FastAPI 中的请求记录到项目目录中的特定文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60385797/

相关文章:

.net - .NET 常用日志中记录器名称的含义是什么?

ios - Alamofire - request.cancel() 也正在取消来自该服务器的所有其他请求?

python - 向 Pandas 索引添加一个值

python - 为什么 xlwings 禁止记录到文件

python - 遍历列表,一次获取三个项目

java - Spring Boot、logback 和 logging.config 属性

ios - Restkit 0.20 中的 didReceiveResponse 委托(delegate)方法

javascript - Mootools - 如何修复初始化和 ajax 请求内的变量范围

python - 计算Python中 Material 的衰减率

python - 如何在 Python 中创建 GUID/UUID