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
影響を受けた行数とエラーに関する情報をログ ファイルで確認したいと考えています。最後に、すべてのイベントを含む完全なログ ファイルが必要です。