ページの先頭行へ戻る
HA Database Ready 業務開発ガイド(Open SQL編)
FUJITSU Integrated System

4.3.1 JDBC driverを利用する場合

以下のシステムプロパティを設定することで、アプリケーションのログが出力できます。

表4.8 システムプロパティの設定内容

システムプロパティ

設定する値

説明

pgx.jdbc.logdir(注)

アプリケーションのログの出力先ディレクトリ

アプリケーションのログの出力先ディレクトリを指定します。

アプリケーションのログファイルは、アプリケーションのプロセスごとに作成されます。ファイル名は、以下のようにプロセスIDと、ログファイルが作成された日時が付加されます。

  • ファイル名の形式

    postgresql-jdbc-プロセスID-YYYY-MM-DD_HHMMSS.log

  • ファイル名の出力例

    postgresql-jdbc-3136-2012-09-22_042640.log

pgx.jdbc.logsize(注)

アプリケーションのログの最大サイズ

アプリケーションのログのサイズがこの値を超えると、別のファイルにログを切り替えます。

単位はメガバイトで、1から2047まで指定できます。

注)ログを出力する場合は、必ず設定してください。設定しなかった場合、または設定に誤りがある場合は、システムプロパティでのログ出力の設定は有効になりません。

指定例

アプリケーションのログの出力先に“/tmp/”、アプリケーションのログの最大サイズに“2”を指定する場合

java -Dpgx.jdbc.logdir=/tmp/ -Dpgx.jdbc.logsize=2 Appli1
アプリケーションのログの出力情報

アプリケーションのログの出力形式と出力情報について、説明します。

出力形式
日付△時刻△コネクションID△通信種別△実行ログ

△:半角スペースを表します

出力情報

出力情報

説明

日付

処理を実行した日付が以下の形式で出力されます。

  • YYYY/MM/DD

時刻

処理を実行した時刻が以下の形式で出力されます。

  • HH:MM:SS.sss

コネクションID

コネクションIDが以下の形式で出力されます。

  • (コネクションID)

接続情報の場合は、“(driver)”と出力されます。

通信種別

通信種別が以下の形式で出力されます。

  • “FE=>”
    Front Endの略で、クライアントから送信した情報であることを表します。

  • “<=BE”
    Back Endの略で、データベースサーバから受信した情報であることを表します。

接続情報の場合は、通信種別は出力されません。

実行ログ

実行した処理の内容が出力されます。

アプリケーションのログの出力例
:(省略)
2012/09/26 13:31:16.552 (driver) Connecting with URL: jdbc:postgresql:// 192.168.0.1,192.168.0.2:26500/postgres
                                                                         ・・・(a)
:(省略)
2012/09/26 13:31:16.683 (2)  FE=> Parse(stmt=null,query=" SELECT * from testtbl",oids={})
                                                                         ・・・(b)
2012/09/26 13:31:16.683 (2)  FE=> Bind(stmt=null,portal=null)
2012/09/26 13:31:16.683 (2)  FE=> Describe(portal=null)
2012/09/26 13:31:16.683 (2)  FE=> Execute(portal=null,limit=0)
2012/09/26 13:31:16.683 (2)  FE=> Sync
2012/09/26 13:31:16.684 (2)  <=BE ParseComplete [null]
2012/09/26 13:31:16.684 (2)  <=BE BindComplete [null]
2012/09/26 13:31:16.685 (2)  <=BE RowDescription(1)
2012/09/26 13:31:16.685 (2)  <=BE DataRow                                 ・・・(c)
2012/09/26 13:31:16.685 (2)  <=BE DataRow
2012/09/26 13:31:16.685 (2)  <=BE DataRow
:(省略)
2012/09/26 13:31:16.686 (2)  <=BE CommandStatus(SELECT 8)
2012/09/26 13:31:16.687 (2)  <=BE ReadyForQuery(I)
2012/09/26 13:31:16.687 (1)  FE=> Terminate                               ・・・(d)

(a)接続情報
  接続時の情報を出力します。

(b)クエリ情報
  実行したSQL文を出力します。

(c)行データの読み込み情報
  データベースサーバから、データを取得したことを表します。

(d)接続の切断情報
  接続が切断されたことを表します。

参考

アプリケーションのログの出力設定は、プログラム中でも指定できます。システムプロパティの設定よりプログラム中の指定が優先されます。

  • プログラムでの設定方法

    import java.io.FileWriter;
    import java.io.PrintWriter;
    import java.io.Writer;
    …
    Writer fw = new java.io.FileWriter("/tmp/filename.log",true);
    DriverManager.setLogWriter(new PrintWriter(fw,true));
    org.postgresql.Driver.setLogLevel(org.postgresql.Driver.DEBUG);

    org.postgresql.Driver.setLogLevelで指定できる引数は、org.postgresql.Driver.INFOまたはorg.postgresql.Driver.DEBUGです。org.postgresql.Driver.DEBUGは、org.postgresql.Driver.INFOを指定した場合より詳細にログが出力されます。