我的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的日志处理程序?
如果它对某人有帮助,我也遇到了完全相同的问题,我无法理解为什么刚安装的fastapi项目不会打印重复的日志消息。我发现我在调用另一个模块时出错了:logging。基本配置(level=logging.INFO)
。对此的评论解决了问题。
FastAPI不做太多日志记录。您如何运行fastapi
,使用gunicorn
或不使用它~~从你提供的信息来看,这还不足以说明复制品的来源。~~但无论如何,我们仍然可以找到解决办法。
uvicorn.error
是uvicorn
用于错误msg的内部记录器。其中一个重复行必须来自uvicorn.error
上的处理程序,另一个来自上/父记录器。
解决方法是停止由两个记录器处理的msg。
>
或禁用uvicorn。传播时出错。
logger = logging.getLogger("uvicorn.error")
logger.propagate = False
当您使用最新版本的uvicorn时,使用
UvicornWorker
运行Gunicorn
uvicorn
时,这应该不是问题。
此外,如果它有助于某人,此页面非常有用。此外,我遇到了一个问题,在调用代码中的setup_logging()之后,SQLAlchemy被初始化。一旦我将其更改为立即初始化,我的重复日志就被删除了。
我正在学习Fastapi,我正在localhost启动一个uvicorn服务器。每当出现错误/异常时,我都不会得到回溯。所有我得到的是: 所以,调试很困难,我正在试用python的日志模块 我还尝试过使用调试参数启动uvicorn
Supported tags and respective Dockerfile links python3.9, latest (Dockerfile) python3.8, (Dockerfile) python3.7, (Dockerfile) python3.6 (Dockerfile) python3.9-slim (Dockerfile) python3.8-slim (Dockerf
我有一个本地运行的服务器。当我在AWS EC2上运行它并在8000端口上从外部发送请求时,我得到以下错误: 如果您能告诉我如何在端口80上执行此操作,那将非常好。
问题内容: 我正在使用python记录器。以下是我的代码: 我的问题是我在每个呼叫的日志文件中都有多个条目。我该如何解决? 问题答案: 该已经是一个单例。(文件) 问题在于,每次调用时,都会向实例添加另一个处理程序,这将导致日志重复。 也许像这样?
我创建了一个个人使用的基本应用程序。我的应用程序的支持使用快速Api和SQLite数据库。通常要运行我的启动和运行我的后端服务器,我必须使用以下命令: 我以前见过其他人创建python可执行文件。我也想这样做,但我需要它来启动uvicorn服务器。如何创建运行uvicorn服务器的python可执行文件? 还是只编写一个执行此操作的批处理脚本更好?
问题内容: 我刚刚实现了Winston Logging,它可以按预期工作,但是遇到了一些我找不到答案的问题。 据我所知,winston的工作方式是设置的日志级别,以及使用优先级以下的任何东西,例如出错时,它还将包括信息日志等。是否有一种创建特定日志级别的方法可以称之为HTTP还是db,我只将http或db事件记录到日志中,而它们并没有出现在合并的文件或控制台中? 问题答案: 更好的解决方案是使用具