如何通过 uvicorn/FastAPI 使用 python 日志记录?

问题描述 投票:0回答:1

这是一个重现我的问题的小应用程序:

import fastapi
import logging
import loguru

instance = fastapi.FastAPI()

@instance.on_event("startup")
async def startup_event():
    logger = logging.getLogger("mylogger")
    logger.info("I expect this to log")
    loguru.logger.info("but only this logs")

当我使用

uvicorn app.main:instance --log-level=debug
启动此应用程序时,我在终端中看到此内容:

INFO:     Waiting for application startup.
2024-05-02 13:14:45.118 | INFO     | app.main:startup_event:28 - but only this logs
INFO:     Application startup complete.

为什么只有

loguru
日志行有效,以及如何使标准 python 日志记录按预期工作?

python logging fastapi uvicorn
1个回答
0
投票

试试这个:

uvicorn app.main:instance --no-access-log

原因是Uvicorn默认配置了内置的日志模块。在启动应用程序时传递此标志将关闭 Uvicorn 的访问日志并允许您配置自定义日志记录。

来源:设置 - Uvicorn

© www.soinside.com 2019 - 2024. All rights reserved.