You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3中psycopg2 LoggingConnection无法写入日志文件的问题

解决psycopg2.LoggingConnection日志为空的问题

问题场景

我用Python3写了一个操作PostgreSQL的dbops类,负责数据库的查询、更新、插入等操作。为了捕获实际发送到数据库的SQL语句,我用psycopg2.extras.LoggingConnection配置了事务日志,但生成的postgresdbops.log日志文件一直是空的——哪怕我通过psql客户端确认数据库操作已经成功执行了。

问题根源

排查后发现问题出在日志实例的初始化代码上:
最初的代码是这样的:

logger = logging.getLogger(__name__)

这里通过__name__获取的日志器,和我预先配置好的、负责输出到postgresdbops.log的dbpopLogger不是同一个实例。LoggingConnection默认会使用这个日志器输出SQL日志,但因为日志器实例不匹配,日志消息根本没被导向到正确的文件处理器,所以日志文件始终为空。

解决方法

把日志器初始化代码改成指定已配置好的日志器名称:

logger = logging.getLogger('dbpopLogger')

替换之后,LoggingConnection输出的SQL日志就能正常写入到postgresdbops.log文件里了。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:52:01