2012-07-20 76 views
2

我重写一个很旧的项目,它采用1.4 JDK和java.util.logging的。它使用到Oracle的JDBC连接。我试图从Java程序中记录所有的SQL调用到Oracle,是否有可能?我已经将驱动程序交换为使用classes14_g.jar并启用了Oracle跟踪。这样的电话:java的记录所有的SQL到Oracle

stmt = (OracleCallableStatement) tr.createCallableStatement(sqlString,1); 
    oracle.jbo.domain.Date jboDate = DateUtil.parseDateString(monthEndDate); 
    stmt.setDATE(1,jboDate); 
    stmt.executeUpdate(); 

还没有登录,欢迎任何建议。

回答

2

一种选择是使用间谍驱动程序来截取所有的JDBC调用,并记录它们。有几个这些可用的,其中一个由BEA(现在是Oracle):

如果你喜欢更多的控制(和更多的工作),你可以利用AOP拦截对您的JDBC驱动程序的调用,然后将它们记录下来,但我觉得这不是一个很大的收获。

+0

,所以我想用classes14_g.jar将不提供我的日志 – Nan 2012-07-20 18:21:58

+0

好了,这就是一个Oracle跟踪 - 什么是登录这将取决于他们在自己的实现类跟踪。从理论上讲,他们应该记录一切,但不看代码就不可能说。 – Perception 2012-07-20 18:55:52

+0

事实上,我用jad文件来uncompile代码,看看他们实际日志CallableStatement的,但仍然无法显示该消息。不知道我应该如何配置日志。但我会试一试拦截器/间谍驱动程序。 – Nan 2012-07-20 19:27:56