5 votes

Messages d'erreur de Psycopg2

Tous,

J'écris des messages d'erreur dans un fichier journal qui devient assez volumineux parce que les erreurs concernent des contraintes uniques dans la base de données. C'est bien et c'est ce que je veux qu'il fasse, alors ma question est la suivante : comment puis-je éviter d'écrire les erreurs de clés dupliquées dans le fichier journal chaque fois qu'elles se produisent ?

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

Merci, Adam

8voto

piro Points 4848

Psycopg transmet le code d'erreur PostgreSQL avec l'exception dans l'attribut pgcode : vous pouvez vérifier que l'erreur est effectivement liée à une violation unique et éviter de les enregistrer. Par exemple :

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)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X