如何禁用 Uvicorn 的日志记录?

Siv*_*r A 13 python logging alembic fastapi uvicorn

我正在开发 FastAPI - Uvicorn。我想禁用 uvicorn 的日志记录。我只需要服务器记录的日志。

日志档案

我参考了这个博客并实现了日志记录。

fun*_*man 15

您可以更改日志级别以仅获取所需的消息,有很多可能的选项

uvicorn main:app --log-level critical
Run Code Online (Sandbox Code Playgroud)


小智 7

我想我也有同样的问题。

要禁用记录器,必须首先找到应禁用的记录器。我通过关注stackoverflow 帖子和GitHub-Issue 来完成此操作。

对我来说,它可以仅禁用 uvicorn 的两个记录器:

import logging
# ....CODE....
uvicorn_error = logging.getLogger("uvicorn.error")
uvicorn_error.disabled = True
uvicorn_access = logging.getLogger("uvicorn.access")
uvicorn_access.disabled = True
Run Code Online (Sandbox Code Playgroud)

起初,我尝试了@Sanchouz提供的答案,但这对我来说并没有成功 - 进一步的设置propagate = false被一些人认为是一种不好的做法(请参阅)。因为我想以编程方式执行此操作,所以无法测试 @funnydman 提供的答案。

希望这对任何人都有帮助,thinklex。