python - 我如何使用 Psycopg2 的 LoggingConnection?

标签 python postgresql psycopg2

我想记录 psycopg2 进行的查询,但是 psycopg2 documentation并没有真正指定应该如何使用 LoggingConnection。

import logging
from psycopg2.extras import LoggingConnection

db_settings = {
    "user": "abcd",
    "password": "efgh",
    "host": "postgres.db",
    "database": "dev",
}

conn = LoggingConnection(**db_settings)

报错

LoggingConnection(**db_settings) TypeError: function takes at most 2 arguments (5 given)

最佳答案

似乎设置 connection_factory=LoggingConnection 有效

import logging
import psycopg2
from psycopg2.extras import LoggingConnection

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

db_settings = {
    "user": "abcd",
    "password": "efgh",
    "host": "postgres.db",
    "database": "dev",
}

conn = psycopg2.connect(connection_factory=LoggingConnection, **db_settings)
conn.initialize(logger)

cur = conn.cursor()
cur.execute("SELECT * FROM table LIMIT 5")

关于python - 我如何使用 Psycopg2 的 LoggingConnection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28950212/

相关文章:

python - "Checkbord-like"二进制选择

python - 使用轴坐标系用matplotlib画线

sql - 随时间查询 DAU/MAU(每天)

python - 数据库连接错误 : Database "dbname" does not exist

python - PostgreSQL 和 psycopg2 : database does not exist

python - 使用 Python 进行 INSERT INTO 和字符串连接

python - openpyxl如何在工作表上编辑输入数据后读取公式结果? data_only=True 给我一个 "None"结果

python - 将 login_required 与 user_passes_test 组合时,Django 'User' 对象没有属性 'user'

ruby-on-rails - 如何在大 CSV 出错后重试 Postgres COPY

postgresql - 插入 postgresql 11 表时出现 SQLAlchemy 编程错误