Сообщения об ошибках Psycopg2 - PullRequest
5 голосов
/ 14 июля 2011

All

Я записываю сообщения об ошибках в файл журнала, и он становится довольно большим, потому что он вызывает ошибки в уникальных ограничениях в БД. Это нормально, и я действительно хочу, чтобы это было сделано, поэтому мой вопрос: как мне избежать записи ошибок дублирующихся ключей в файл журнала каждый раз, когда они происходят?

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

Спасибо, Адам

1 Ответ

7 голосов
/ 18 июля 2011

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)
...