Psycopg2 错误信息
大家好,
我正在把错误信息写入一个日志文件,但这个文件变得越来越大,因为数据库里出现了唯一性约束的错误。这没问题,我其实就是想要这样。我的问题是,怎么才能避免每次出现重复键错误时都把它们写入日志文件呢?
except Exception as err:
logger.error('FunctionName: %s', err)
谢谢,
亚当
1 个回答
8
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)