如何使用ojdbc8_g.jar启用jdbc日志的stacktrace

ipakzgxi  于 2021-08-09  发布在  Java
关注(0)|答案(0)|浏览(234)

关于使用ojdbc8_g.jar激活堆栈跟踪日志记录,我有一个问题。虽然使用ojdbc7_g.jar时,它在那里并且对执行的每个sql语句都可见,但在ojdbc8_g中,我没有成功地激活它。我得到的唯一信息是sql语句,但我还需要stack trace语句。我确实搜索了oracle文档,但没有找到任何关于如何从8版本检索堆栈跟踪的指示。有人知道是否有可能通过ojdbc8获得这些信息吗?
update:i'将添加一些详细信息一个简单的类使用此配置对oracle数据库执行一个查询:djava.util.logging.config.file=c:/workpath/java/log.properties-doracle.jdbc.trace=true使用ojdbc7_g.jar的结果如下:

<record>
  <date>2020-04-08T10:39:39</date>
  <millis>1586335179544</millis>
  <sequence>19</sequence>
  <logger>oracle.jdbc.driver</logger>
  <level>CONFIG</level>
  <class>oracle.jdbc.driver.OracleStatement</class>
  <method>doExecuteWithTimeout</method>
  <thread>1</thread>
  <message>674BD420 SQL: SELECT * FROM v_server</message>
  <exception>
    <message>java.lang.Throwable: No Error</message>
    <frame>
      <class>oracle.jdbc.driver.OracleStatement</class>
      <method>doExecuteWithTimeout</method>
      <line>1427</line>
    </frame>
    <frame>
      <class>oracle.jdbc.driver.OracleStatement</class>
      <method>executeQuery</method>
      <line>1795</line>
    </frame>
    <frame>
      <class>oracle.jdbc.driver.OracleStatementWrapper</class>
      <method>executeQuery</method>
      <line>1513</line>
    </frame>
    <frame>
      <class>it.igs.JDBCTest</class>
      <method>getSqlDirect</method>
      <line>96</line>
    </frame>
    <frame>
      <class>it.igs.JDBCTest</class>
      <method>main</method>
      <line>23</line>
    </frame>
  </exception>
</record>

如果使用ojdbc8_g.jar运行相同的测试,结果是:

<record>
  <date>2020-04-08T10:39:39</date>
  <millis>1587367077619</millis>
  <sequence>19</sequence>
  <logger>oracle.jdbc</logger>
  <level>CONFIG</level>
  <class>oracle.jdbc.driver.OracleStatement</class>
  <method>logSQL</method>
  <thread>1</thread>
  <message>142EEF62 SQL: SELECT * FROM v_server</message>
</record>

属性文件与用于生成日志的文件相同,正如您在上一个测试中看到的,它缺少堆栈跟踪
更新2:有关使用的属性文件的其他信息。

level=SEVERE
oracle.jdbc.level=ALL
oracle.jdbc.driver.level=CONFIG
oracle.jdbc.pool.level=SEVERE
oracle.jdbc.util.level=SEVERE
oracle.sql.level=FINE
oracle.net.level=SEVERE
oracle.jdbc.handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.level=CONFIG
java.util.logging.FileHandler.pattern=c:/Workpath/java/jdbc%u%g.log
java.util.logging.FileHandler.count=5
java.util.logging.FileHandler.formatter=java.util.logging.XMLFormatter

我重复一遍,用两个ojdbc\g驱动程序运行测试没有问题。问题是在输出文件日志中,ojdbc8\u g没有由ojdbc7\u g写入的堆栈跟踪信息。我需要为一个无法使用ojdbc7的特定客户使用ojdbc8。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题