我正在尝试调试查询 Oracle 数据库的 Java 应用程序。
我已经开始我的申请
-Doracle.jdbc.Trace=true -Djava.util.logging.config.file=c:/tmp/oracledebug.properties
包含
handlers = java.util.logging.FileHandler
java.util.logging.FileHandler.pattern = c:/tmp/jdbc.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
oracle.jdbc.driver.level = CONFIG
但是,它输出的 SQL 带有问号。
是否可以记录绑定(bind)变量的值?
最佳答案
根据documentation :
FINE
Logs the entry and exit to every public method providing a detailed trace of JDBC operations. It produces a fairly high volume of log messages.
设置系统属性-Djava.util.logging.SimpleFormatter.format="%1$tc %2$s %3$s%n%4$s: %5$s%6$s% n"
将记录器名称包含在输出文件中。
当我使用上面的 SimpleFormatter 模式设置 oracle.jdbc.driver=FINE
时,我看到的输出如下:
Wed Nov 02 08:43:06 CDT 2016 oracle.jdbc.driver.OraclePreparedStatement setString oracle.jdbc.driver
FINE: XXXXXXXX Public Enter: 1, "some input string"
Public Enter:
之后的所有内容都是 PreparedStatement.setString(int, String) 的参数.
关于java - 在 Oracle JDBC 日志记录中获取绑定(bind)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40346938/