【问题标题】:How to turn sqlalchemy logging off completely如何完全关闭 sqlalchemy 注销
【发布时间】:2013-09-24 21:42:17
【问题描述】:

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

import logging
logger = logging.getLogger()
logger.disabled = True

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

【问题讨论】:

  • 你能发布你的引擎配置和日志配置吗?

标签: python logging sqlalchemy


【解决方案1】:

您是否将echo=True 传递给create_engine()?默认情况下,它创建输出到控制台的 StreamHandler。正如documentation 所说,如果您没有提供任何echo=True 参数并且没有配置root sqlalchemy 记录器,它将不会记录任何内容。

【讨论】:

  • 救命稻草,请注意:切勿从文档中复制粘贴代码。
  • 也可以是 SQLALCHEMY_ECHOflask 配置中的环境变量
【解决方案2】:

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

import logging

logging.basicConfig()
logging.getLogger('sqlalchemy').setLevel(logging.ERROR)

有关详细信息,请参阅docs

【讨论】:

  • 有人能解释一下否决票吗?在配置级别设置日志记录详细程度比必须将echo=False 传递给可能创建引擎的所有函数要好得多。
  • 对我来说,我投了反对票,因为我尝试了这种技术但没有奏效。
  • 将分析器从 logging.getLogger('sqlalchemy.engine') 更改为 logging.getLogger('sqlalchemy'),这应该涵盖更多情况。除此之外,不知道为什么它不起作用......
  • @CyrilN。这看起来与日志记录无关。您的statement 查询中可能存在错误。也许您正尝试多次插入同一列或其他内容..
  • 我也投了反对票。虽然这应该有效,但 SQL alchemy 会竭尽全力绕过它。违背所有常识和最佳实践。
猜你喜欢
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-20
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多