如何完全关闭sqlalchemy日志

pyt*_*iku 13 python logging sqlalchemy

sqlalchemy保持登录到控制台,即使我有以下代码

import logging
logger = logging.getLogger()
logger.disabled = True
Run Code Online (Sandbox Code Playgroud)

如何完全关闭sqlalchemy的日志记录?

Pal*_*aty 28

你传给echo=Truecreate_engine()吗?默认情况下,它会创建StreamHandler,并输出到控制台.正如文档所说,如果您没有提供任何echo=True参数并且没有配置根sqlalchemy记录器,它将不会记录任何内容.

  • 救命稻草,自我提醒:永远不要从文档中复制粘贴代码。 (3认同)
  • 或者它可以是烧瓶配置中的“SQLALCHEMY_ECHO”环境变量 (2认同)

ost*_*ach 9

您可以sqlalchemy使用以下方法关闭记录器:

import logging

logging.basicConfig()
logging.getLogger('sqlalchemy').setLevel(logging.ERROR)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅文档

  • 我也投了反对票。虽然这“应该”有效,但 SQL 炼金术却花了一些功夫来绕过这个问题。与所有常识和最佳实践相反。 (5认同)
  • 对我来说,我投了反对票,因为我尝试了这种技术,但没有奏效。 (3认同)
  • 有人可以解释一下否决票吗?在配置级别设置日志记录详细程度比必须将“echo=False”传递给可能创建引擎的所有函数要好得多。 (2认同)
  • 将 anser 从 `logging.getLogger('sqlalchemy.engine')` 更改为 `logging.getLogger('sqlalchemy')`,这应该涵盖更多情况。除此之外,不知道为什么它不起作用...... (2认同)