デバッグとトレース

JDBC ドライバーのロギングを Apache Log4j 構成ファイルで有効にします。

このタスクについて

JDBC ドライバーでは、Apache Log4j2 (https://logging.apache.org/log4j/2.x/) を使用してロギングを実装します。
注: JDBC ドライバーのロギング情報を Studio の「Server Trace」ペインに含めるには、JDBC の TraceBrowseAppender プロパティーを有効にします。

手順

Log4j 構成ファイル (https://logging.apache.org/log4j/2.x/manual/configuration.html) を開き、以下のいずれかの方法を選択してロギングを実装します。
  • ディレクトリーとフォルダーの場所を CLASSPATH に追加します。
  • LogConfiguration 接続プロパティーを、Log4j 構成ファイルを指すファイル・パスか URI に設定します。

以下は、JDBC ドライバーのインストール ZIP ファイルに含まれているサンプルの log4j2.xml 構成ファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="5">    
    <Appenders>   
        <Console name="Console" …>     
            <PatternLayout … />   
        </Console>   
        <RollingRandomAccessFile name="RollingFile" …>     
          <PatternLayout>       
            <Pattern>…</Pattern>      
            </PatternLayout>     
            <Policies>       
              <SizeBasedTriggeringPolicy … />     
        </Policies>   
       </RollingRandomAccessFile> 
    </Appenders> 
    <Loggers>    
        <Root level="WARN">     
            <AppenderRef ref="Console" />     
            <AppenderRef ref="RollingFile" />   
        </Root>   
        <Logger name="com.rs.jdbc.dv.DvDataSource"  
                level="WARN" />   
        <Logger name="com.rs.jdbc.dv.log.DvThreadsStateLogger" 
                level="WARN" />   
        <Logger name="javax.management" 
                level="WARN" />   
        <Logger name="sun.rmi" 
                level="WARN" />   
        <Logger name="com.rs.dv.util.LoggerEnvironmentReporter" 
                level="OFF" /> 
    </Loggers>
</Configuration>

このサンプル構成ファイルでは、構成全体の状況とルート・ロガーのレベルが WARN に設定されている (<Configuration status=="WARN">;<Root level="WARN">) 場合は、何もログに記録されません。構成のレベルを TRACE に設定すると、Log4j では、構成対象の Log4j 自体に関するログが記録されます。構成ファイルのデバッグが必要な場合にこれが役立ちます。 ルート・ロガーのレベルを DEBUG に設定すると、ドライバーではより詳しい情報がログに記録され、このレベルを TRACE に設定すると、JDBC API の入口と出口のトレースが可能になります。詳しくは、次の URL を参照してください。

 https://logging.apache.org/log4j/2.x/manual/flowtracing.html

各ドライバー実装クラスにはロガーがあります。ロガー名は完全修飾クラス名から派生した名前です。これらの各ロガーのロギング・レベルは個別に変更できます。

デフォルトでは、ルート・レベルを TRACE に設定すると、バッファーの 16 進ダンプがログに記録されます。 バッファー・トレースを無効にする一方で API ロギングを有効にする場合は、Log4j フィルターを使用します。

次の例は、JDBC 構成ファイルに対してフィルター DV.BUFFER を定義する方法を示しています。

<Loggers>
…   
    <Filters>   
        <MarkerFilter marker="DV.BUFFER" 
                     onMatch="DENY"  onMismatch="NEUTRAL" /> 
    </Filters>
</Loggers>

フィルターは、マーカー属性に適切な値を設定することによって通信と SQL 操作にも適用できます。 以下のフィルターから選択できます。

  • DV.BUFFER
    • DV.BUFFER.HEADER
    • DV.BUFFER.PARAM
    • DV.BUFFER.COMPRESSED
    • DV.BUFFER.DECOMPRESSED
    • DV.BUFFER.UNCOMPRESSED
    • DV.BUFFER.DESCRIPTION
    • DV.BUFFER.DESCRIPTION.CONNECT
  • DV.COMM
    • DV.COMM.SOCKET
  • DV.SQL
    • DV.SQL.PREPARE.USER
    • DV.SQL.BATCH.USER
    • DV.SQL.BATCH.SERVER
    • DV.SQL.QUERY.USER
    • DV.SQL.QUERY.SERVER
    • DV.SQL.QUERY.POST
    • DV.SQL.UPDATE.USER
    • DV.SQL.UPDATE.SERVER