2012-07-20 84 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