Oracle日志中填充了;java.lang.Throwable:无错误“;?

Oracle日志中填充了;java.lang.Throwable:无错误“;?,java,oracle,jdbc,Java,Oracle,Jdbc,我已经为我的Oracle连接启用了JDBC日志记录。我希望日志只包含已执行查询的文本,但它填充了以下错误 关于导致此跟踪的原因、如何修复它和/或如何将日志记录限制为已执行查询的文本,是否有任何建议 我的OraceLog.properties oracle.jdbc.level=CONFIG oracle.jdbc.handlers=java.util.logging.FileHandler java.util.logging.FileHandler.level=CONFIG java.util.

我已经为我的Oracle连接启用了JDBC日志记录。我希望日志只包含已执行查询的文本,但它填充了以下错误

关于导致此跟踪的原因、如何修复它和/或如何将日志记录限制为已执行查询的文本,是否有任何建议

我的OraceLog.properties

oracle.jdbc.level=CONFIG
oracle.jdbc.handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.level=CONFIG
java.util.logging.FileHandler.count=1
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

java.util.logging.FileHandler.pattern = /tmp/jdbc.log
编辑

在使用JDBC日志对我的应用程序进行调试之后,我发现跟踪非常有用,因为它指示SQL语句的代码位置。它可以很容易地用正则表达式过滤掉,比如:

tail-f/tmp/jdbc.log | grep-v'java.lang.\\|.at'


这似乎是跟踪SQL语句的一个已知副作用(
.level=CONFIG
和更精细)。关于这一点的评论中进行了讨论。那里的最后一个帖子是在2012年


似乎没有办法禁用堆栈跟踪。

编写一个java.util.logging.Filter,它不执行任何操作,没有错误日志消息,并将其附加到处理程序。请注意,不会抛出抛弃对象。这只是一种获取堆栈跟踪的方法


Oracle数据库JDBC日志记录是用于调试的工具,而不是用于生产。这是一个巨大的性能消耗。我们强烈反对在生产中使用它。我们的经验是,希望看到SQL的客户也希望看到它来自哪里。这就是堆栈跟踪的原因。

如果没有
level=config
,我将无法获取sql查询文本?因此,如果没有这个stacktrace,我将无法记录我的查询?似乎确实如此。我找不到比2012年更近的了。您可能想向Oracle提交一个bug。从2012年到最新版本,Oracle数据库JDBC日志记录没有任何重大更改。使用了一点之后,我发现无错误跟踪非常有用,并且可以很容易地用regex过滤掉
oracle.jdbc.level=CONFIG
oracle.jdbc.handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.level=CONFIG
java.util.logging.FileHandler.count=1
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

java.util.logging.FileHandler.pattern = /tmp/jdbc.log