使用snowflake-connector与simple-ddl-parser时终端输出异常求助
问题:启用simple-ddl-parser解析后,snowflake-connector输出大量调试日志
我编写了一段Python脚本,通过snowflake-connector连接Snowflake并获取表的DDL定义,再用simple-ddl-parser解析该DDL。当注释掉result = DDLParser(ddl[0]).run()仅打印DDL时,终端输出正常,仅显示外部浏览器认证提示及DDL内容;但启用解析代码后,终端会输出大量snowflake-connector的调试信息(如连接状态、遥测日志、会话关闭详情等)。DDL解析可成功完成,但我希望屏蔽这些无关日志,请问这是什么原因导致的?是否是两个库存在冲突?
回答
- 原因:不是库冲突,核心问题是
simple-ddl-parser在运行过程中修改了Python全局日志级别。snowflake-connector默认不会输出调试级别的日志,但如果全局日志被调低至DEBUG,就会触发它输出所有细节日志。 - 解决方法:
- 直接限制snowflake-connector的日志级别,在脚本开头添加:
import logging logging.getLogger('snowflake.connector').setLevel(logging.WARNING) - 彻底禁用snowflake-connector的日志传播,避免日志输出到终端:
import logging sf_logger = logging.getLogger('snowflake.connector') sf_logger.propagate = False sf_logger.handlers = [] - 检查
simple-ddl-parser的配置,看是否有日志相关的参数可以调整,避免它修改全局日志设置。
- 直接限制snowflake-connector的日志级别,在脚本开头添加:
内容的提问来源于stack exchange,提问作者TKA
相关产品推荐
相关产品推荐

