logging - 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 的日志处理程序?
解决方案
此外,如果它对某人有帮助,此页面非常有帮助。此外,我遇到了一个问题,即在调用该代码的 setup_logging()之后初始化 SQLAlchemy。一旦我将其更改为立即初始化,我的重复日志就被删除了。
推荐阅读
- python - 根据两行值的差异附加nan行
- go - 在 Go 中使用计时器来触发条件?
- java - Why am I getting error the instantiation line?
- swift - Collection View Dynamic height issue
- javascript - Sequelize inner join on many to many
- c++ - Why does my code put false values in int array?
- docker - Docker-compose 有效,只是 Docker 使用 Dockerfile - 没有。为什么?
- python - cmd displaying output only after program has finished
- laravel - Laravel 8 - GET http://localhost:8000/css/app.css net::ERR_ABORTED 404 (Not Found)
- csv - 将 bytes.Buffer 与 csv.writer 一起使用