这是一个重现我的问题的小应用程序:
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 日志记录按预期工作?
试试这个:
uvicorn app.main:instance --no-access-log
原因是Uvicorn默认配置了内置的日志模块。在启动应用程序时传递此标志将关闭 Uvicorn 的访问日志并允许您配置自定义日志记录。
来源:设置 - Uvicorn