所有
我正在将错误消息写入日志文件,并且它变得非常大,因为它在数据库中的唯一约束上出错。这很好,它实际上是希望它这样做我的问题是,我怎样才能避免每次发生时将重复键错误写入日志文件?
except Exception as err:
logger.error('FunctionName: %s', err)
谢谢, 亚当
答案 0 :(得分: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)