java - 在 Oracle JDBC 日志记录中获取绑定(bind)变量

标签 java oracle java.util.logging

我正在尝试调试查询 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/

相关文章:

Oracle 11g 监听器无法启动

business-process-management - 启用 Activiti 日志记录

java - 加载 java.util.logging.config.file 进行默认初始化

java - Android - Google map V2 - 计算当前不在 View 中的标记是否位于屏幕的北、东、南或西

oracle - 如何确定 JPA 中是否发生了 Oracle 可延迟约束违规?

java - 嵌套异常是 java.sql.SQLException : Invalid column name ORACLE

java - 日志记录不适用于较低级别

java - 在对话框中显示不断变化的图片循环?

java - 相当于 Android Studio 中的 "android.library=true"

java - 使参数在应用程序中可用