実行されたSQLを自動的にログへ記録する (PostgreSQL)
データベースへ投げられたSQLを実行される度に記録したいが、どうすれば良いだろう?
PostgreSQLでは設定ファイル「postgresql.conf」内にある「log_statement」の設定を変更すれば良い。
PostgreSQLでは設定ファイル「postgresql.conf」内にある「log_statement」の設定を変更すれば良い。
PostgreSQLでは8.0からログの記録に関する機能が強化されている。log_statementの部分に、none, mod, ddl, allのいずれかの値を記録すれば良い。
変更後はpostgresを再起動すること。それぞれの値の意味は次のようになる。
※記録したい場合は「log_min_error_statement」の値を変更する。
○参考ページ
17.7. エラー報告とログ取得
http://www.postgresql.jp/document/pg820doc/html/runtime-config-logging.html
log_statement = 'mod' # none, mod, ddl, all
変更後はpostgresを再起動すること。それぞれの値の意味は次のようになる。
- none
記録しない。デフォルトは通常これ。 - ddl
CREATE、ALTER、DROPなどのデータ定義文 - mod
"ddl"+INSERT、UPDATE、DELETE、TRUNCATE、COPY FROMなど、データに変更を加えるもの - all
すべてのSQLを記録
※記録したい場合は「log_min_error_statement」の値を変更する。
○参考ページ
17.7. エラー報告とログ取得
http://www.postgresql.jp/document/pg820doc/html/runtime-config-logging.html
