以下のシステムプロパティを設定することで、アプリケーションのログが出力できます。
システムプロパティ | 設定する値 | 説明 |
|---|---|---|
pgx.jdbc.logdir(注) | アプリケーションのログの出力先ディレクトリ | アプリケーションのログの出力先ディレクトリを指定します。 アプリケーションのログファイルは、アプリケーションのプロセスごとに作成されます。ファイル名は、以下のようにプロセスIDと、ログファイルが作成された日時が付加されます。
|
pgx.jdbc.logsize(注) | アプリケーションのログの最大サイズ | アプリケーションのログのサイズがこの値を超えると、別のファイルにログを切り替えます。 単位はメガバイトで、1から2047まで指定できます。 |
注)ログを出力する場合は、必ず設定してください。設定しなかった場合、または設定に誤りがある場合は、システムプロパティでのログ出力の設定は有効になりません。
アプリケーションのログの出力先に“/tmp/”、アプリケーションのログの最大サイズに“2”を指定する場合
java -Dpgx.jdbc.logdir=/tmp/ -Dpgx.jdbc.logsize=2 Appli1
アプリケーションのログの出力形式と出力情報について、説明します。
日付△時刻△コネクションID△通信種別△実行ログ
△:半角スペースを表します
出力情報 | 説明 |
|---|---|
日付 | 処理を実行した日付が以下の形式で出力されます。
|
時刻 | 処理を実行した時刻が以下の形式で出力されます。
|
コネクションID | コネクションIDが以下の形式で出力されます。
接続情報の場合は、“(driver)”と出力されます。 |
通信種別 | 通信種別が以下の形式で出力されます。
接続情報の場合は、通信種別は出力されません。 |
実行ログ | 実行した処理の内容が出力されます。 |
:(省略)
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を指定した場合より詳細にログが出力されます。