我是使用psycopg2,遇到了一个问题,需要将事件(执行的查询、通知、错误)记录到文件中。我希望能够像PgAdmin的历史窗口一样实现这个功能。
例如,我正在执行以下查询:
例如,我正在执行以下查询:
insert into city(id, name, countrycode, district, population) values (4080,'Savilla', 'ESP', 'andalucia', 1000000)
在PgAdmin中,我看到的效果如下:
Executing query:
insert into city(id, name, countrycode, district, population) values (4080,'Sevilla', 'ESP', 'andalucia', 1000000)
Query executed in 26 ms.
One row affected.
我可以使用psycopg2获得类似的效果吗?
我尝试使用LoggingCursor,但对我来说并不令人满意,因为它只记录查询。
谢谢帮助。
编辑:
我的代码:
conn = psycopg2.extras.LoggingConnection(DSN)
File=open('log.log','a')
File.write('================================')
psycopg2.extras.LoggingConnection.initialize(conn,File)
File.write('\n'+time.strftime("%Y-%m-%d %H:%M:%S") + '---Executing query:\n\t')
q="""insert into city(id, name, countrycode, district, population) values (4080,'Sevilla', 'ESP', 'andalucia', 10000)"""
c=conn.cursor()
c.execute(q)
File.write('\n'+time.strftime("%Y-%m-%d %H:%M:%S") + '---Executing query:\n\t')
q="""delete from city where id = 4080"""
c=conn.cursor()
c.execute(q)
conn.commit()
File.close()
这是我的输出日志:
================================
2012-12-30 22:42:31---Executing query:
insert into city(id, name, countrycode, district, population) values (4080,'Sevilla', 'ESP', 'andalucia', 10000)
2012-12-30 22:42:31---Executing query:
delete from city where id = 4080
我希望在日志文件中看到关于受影响行数的信息以及错误信息。最后,我希望拥有一个包含所有事件的完整日志文件。