2011-07-14 91 views
5

すべて、Psycopg2エラーメッセージ

私は、ログファイルにエラーメッセージを書いていますし、それはDB内で一意の制約上、それエラーので、かなり大きくなります。それはうまくあり、それは実際にそれが私の質問があるようにしたい、どうすれば重複キーエラーが発生するたびにログファイルに書き込むことができますか?

 except Exception as err: 
       logger.error('FunctionName: %s', err) 

おかげで、 アダム

答えて

7

Psycopgは属性pgcodeで例外と一緒にPostgreSQLのエラーコードを渡します。あなたは、エラーが実際にユニークな違反に関連していることを確認し、それらをログに記録避けることができます。例:

try: 
    cursor.execute("...") 
except psycopg2.IntegrityError as err: 
    if err.pgcode != '23505': 
     logger.error('FunctionName: %s', err) 
except Exception as err: 
    logger.error('FunctionName: %s', err) 
+0

ありがとうございました!!! – aeupinhere

+2

http://www.postgresql.org/docs/8.1/static/errcodes-appendix.html – aeupinhere