LoginSignup
21
26

More than 5 years have passed since last update.

PostgreSQLで実行されたSQLをログ出力する方法

Last updated at Posted at 2014-03-24

PostgresSQLで実行したSQLをログ出力する設定手順です。
プログラム経由でDBアクセスしている箇所の挙動がおかしいな、という時や
ORマッピングフレームワークで最終的にどんなSQLが何回発行されてるの?
という時に役立つかもしれません。

環境

  • OS:Windows7
  • PostgresSQL:9.3
  • pgAdmin:1.18.1

手順

1. postgresql.confを開く

postgresql.confはPostgreSQLのインストールフォルダ>data の下にあります。
pgAdminのバックエンド構成エディタを使う場合、
 ファイル>postgresql.confを開く
で対象となるファイルを選択します。
edit_conf_bk.PNG

2. パラメータ:log_statementの値を変更する

log_statement.PNG

意味
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を使用してデータベースクラスタを作成する時に実行環境のロケール設定に従って設定されている

lc_messages.PNG

21
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
26