gpt4 book ai didi

java - 针对一个特定的 JDBC 错误调整 hibernate 日志记录级别

转载 作者:搜寻专家 更新时间:2023-11-01 00:55:19 26 4
gpt4 key购买 nike

环境: hibernate 4.2.6

场景:hibernate 为特定的“违反唯一约束 PK_XXX”sql 异常记录“错误”。然而,由于我们特定的多实例部署场景,我们需要针对这个特定的“违反唯一约束 PK_XXX”sql 异常将其调整为“INFO”级别。 (因此它不会混淆 IT 人员)。

换句话说,技术上它是“ERROR”,但从业务角度来看它是“INFO”。

目前:

2016.01.19 13.20.14,299 [ ERROR ][ ][ ][ ] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - logExceptions() ORA-00001:违反唯一约束 (PK_LOCKINFO)

期望:

2016.01.19 13.20.14,299 [ INFO ][ ][ ][ ] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - logExceptions() ORA-00001:违反唯一约束 (PK_LOCKINFO)

前进的最简单方法是什么?我能想到的选项:

  1. 修改hibernate内部类“org.hibernate.engine.jdbc.spi.SqlExceptionHelper”,然后重新编译“hibernate”jar

具体定制为:如果出现“违反唯一约束PK_LOCKINFO”的sql异常,记录为“INFO”级别,而不是“ERROR”级别。但任何其他 sql 异常仍应记录为“错误”级别。在我们前进的过程中,这个选项提出了挑战。每次 hibernate 升级时我们都必须这样做。

  1. 在我们自己的代码库中有一个类来扩展和自定义 hibernate 类“org.hibernate.engine.jdbc.spi.SqlExceptionHelper”这样我们就不必编译“hibernate ”jar。这可能吗?

  2. 在我们的代码中添加一个事后监听器,它不断地扫描“日志”,然后对此采取一些措施

不确定我是否喜欢选项 #3。显得太别扭了。

还有其他选择吗?

最佳答案

我们最终选择了选项 #2:有一个类来扩展和自定义 hibernate 类“org.hibernate.engine.jdbc.spi.SqlExceptionHelper”

关于java - 针对一个特定的 JDBC 错误调整 hibernate 日志记录级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34908886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com