2011-07-14 17 views
5

wszystkimkomunikaty o błędach psycopg2

Piszę komunikaty o błędach w pliku dziennika i to staje się bardzo duża, ponieważ błędy na unikalnych ograniczeń w DB. To jest w porządku, a tak naprawdę chce tego zrobić, więc moje pytanie brzmi: jak mogę uniknąć zapisywania duplikatów kluczowych błędów w pliku dziennika za każdym razem, gdy się pojawią?

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

Dzięki Adam

Odpowiedz

7

Psycopg przechodzi kod błędu PostgreSQL wraz z wyłączeniem w atrybucie pgcode: można sprawdzić, czy błąd jest rzeczywiście związane z naruszeniem unikalnego i unikać ich zalogowaniu. Na przykład:

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

Dziękuję bardzo !!! – aeupinhere

+2

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

Powiązane problemy