Psycopg2 错误消息

发布于 2024-11-24 02:07:18 字数 237 浏览 1 评论 0原文

所有,

我正在将错误消息写入日志文件,并且它变得非常大,因为它在数据库中的唯一约束上出错。这很好,它实际上希望它这样做,所以我的问题是,如何避免每次发生重复的键错误时都将其写入日志文件?

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

谢谢, 亚当

All,

I am writing error messages to a log file and it's becoming pretty large because it errors on unique constraints in the DB. That is fine and it's actually want it to do so my question is, how can I avoid writing the duplicate key errors to the log file every time they happen?

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

Thanks,
Adam

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无边思念无边月 2024-12-01 02:07:18

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)

Psycopg passes the PostgreSQL error code along with the exception in the attribute pgcode: you can verify that the error is actually related to a unique violation and avoid logging them. For example:

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文