首页 > 解决方案 > Uvicorn/FastAPI 重复记录

问题描述

我的 FastAPI 应用程序似乎记录了很多东西两次。

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [21360] using statreload
INFO:     Started server process [21362]
INFO:uvicorn.error:Started server process [21362]
INFO:     Waiting for application startup.
INFO:uvicorn.error:Waiting for application startup.
INFO:     Application startup complete.
INFO:uvicorn.error:Application startup complete.
^CINFO:     Shutting down
INFO:uvicorn.error:Shutting down
INFO:     Waiting for application shutdown.
INFO:uvicorn.error:Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:uvicorn.error:Application shutdown complete.
INFO:     Finished server process [21362]
INFO:uvicorn.error:Finished server process [21362]
INFO:     Stopping reloader process [21360]

这包括引发的任何异常,您将获得整个堆栈跟踪两次。我已经看到一些答案建议只删除 Uvicorn 的日志处理程序,但这感觉不对。如果在堆栈的 Uvicorn 层发生了日志事件,但在 FastAPI 中没有发生呢?

有没有办法只获得一次日志输出而无需覆盖 uvicorn 的日志处理程序?

标签: loggingfastapiuvicorn

解决方案


此外,如果它对某人有帮助,此页面非常有帮助。此外,我遇到了一个问题,即在调用该代码的 setup_logging()之后初始化 SQLAlchemy。一旦我将其更改为立即初始化,我的重复日志就被删除了。


推荐阅读