我想知道Hibernate或Spring或任何第三方库是否提供了将DBMS_OUTPUT.put_line消息直接打印到system.out或日志文件的能力。
目的是在控制台中同时包含PLSQL日志消息和Java日志消息。
我知道有一个类似的问题,答案是将PLSQL过程转换为返回日志消息的函数,但这并不适合我的情况。事实上,我的日志消息太复杂了,不可能在函数中返回它。
我读过这篇https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:45027262935845文章,得到了灵感,但我想知道是否有一个开箱即用的解决方案来避免鲸鱼繁殖。
1条答案
按热度按时间zazmityj1#
由于没有人回答这个问题,我想没有任何开箱即用的解决方案。所以我自己建立了它,并张贴我的代码在这里的人可能会感兴趣。
欢迎任何想要改进这个解决方案的人!只是不要羞于分享你的解决方案!
基于Spring AOP的解决方案。创建了一个注解
@DbmsOutput
,用于在相关方法上添加DBMS_OUTPUT感知能力。环境:Maven + Spring 4.2.6 + Hibernate 5.1.0
步骤1:添加Spring AOP依赖项
第二步:创建@Dbms输出
步骤3:正在为使用
@DbmsOutput
声明的所有方法创建拦截器。步骤4:在Spring中配置
DbmsOutputAspect
和TransactionManager