2011-07-14 107 views
5

所有,Psycopg2錯誤信息

我寫錯誤信息到一個日誌文件,它變得就在DB唯一約束相當大的,因爲它的誤差。這很好,它實際上是想讓它這樣做,我的問題是,我怎樣才能避免每次發生重複鍵重要錯誤到日誌文件?

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

感謝, 亞當

回答

7

Psycopg通過PostgreSQL的錯誤代碼中的屬性pgcode異常一起:您可以驗證錯誤實際上與獨特的侵犯,避免他們記錄。例如:

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