环境:Hibernate 4.2.6
场景:hibernate记录特定"唯一约束PK_XXX违反的#ERROR" sql异常。 但是由于我们特定的多实例部署方案,我们需要将此调整为“INFO”级别,以便针对此特定的"唯一约束PK_XXX违反" sql异常。 (所以它不会混淆IT人员)。
换句话说,从技术上讲,它是" ERROR",但它是" INFO"从商业角度来看。
目前:
2016.01.19 13.20.14,299 [ ERROR ][ ][ ][ ] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - logExceptions() ORA-00001: unique constraint (PK_LOCKINFO) violated
渴望:
2016.01.19 13.20.14,299 [ INFO ][ ][ ][ ] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - logExceptions() ORA-00001: unique constraint (PK_LOCKINFO) violated
前进的最简单方法是什么?我能想到的选择:
具体的定制是:如果"违反了唯一约束PK_LOCKINFO" sql异常,将其记录为" INFO"等级而不是" ERROR"水平。但任何其他sql异常仍应记录为" ERROR"水平。 在我们前进的过程中,这一选择提出了挑战。每次hibernate升级时我们都必须这样做。
有一个课程要扩展&自定义hibernate类" org.hibernate.engine.jdbc.spi.SqlExceptionHelper"在我们自己的代码库中 这样我们就不必编译“hibernate”jar了。这可能吗?
在我们的代码中添加一个事后监听器,扫描" log"经常,然后做点什么
不确定我是否喜欢选项#3。似乎太尴尬了。
还有其他选择吗?
答案 0 :(得分:0)
我们最终选择了#2选项:有一个类来扩展&自定义hibernate类" org.hibernate.engine.jdbc.spi.SqlExceptionHelper"