PostgresSQLで実行したSQLをログ出力する設定手順です。
プログラム経由でDBアクセスしている箇所の挙動がおかしいな、という時や
ORマッピングフレームワークで最終的にどんなSQLが何回発行されてるの?
という時に役立つかもしれません。
#環境
- OS:Windows7
- PostgresSQL:9.3
- pgAdmin:1.18.1
#手順
###1. postgresql.confを開く###
postgresql.confはPostgreSQLのインストールフォルダ>data の下にあります。
pgAdminのバックエンド構成エディタを使う場合、
ファイル>postgresql.confを開く
で対象となるファイルを選択します。
###2. パラメータ:log_statementの値を変更する###
値 | 意味 |
---|---|
none | ログに記録しない |
ddl | CREATE、ALTER、およびDROP文といった、データ定義文を全てログに記録する |
mod | 全てのddl文に加え、INSERT、UPDATE、DELETE、TRUNCATE、およびCOPY FROMといった、データ変更文をログに記録する |
all | 全てのSQL文をログに記録する |
※allを設定してもSQLに構文エラーがある場合は記録されない |
###3. postgresSQLを再起動する###
###4. ログが文字化けする場合###
パラメータ:lc_messagesの値を変更する
- 変更前:Japanese_Japan.932
- 変更後:ja_JP.UTF-8 または en_US.UTF-8
※デフォルト値はinitdbを使用してデータベースクラスタを作成する時に実行環境のロケール設定に従って設定されている