とあるエンジニアの闇歴史帳

コピペで使える便利Wiki ※現在構築中です。

ユーザ用ツール


サイドバー

言語

サーバ関連

ツール

API

読み物

その他

postgresql:log_statement

実行されたSQLを自動的にログへ記録する - PostgreSQL

この記事は2007年05月18日に書かれた物です

データベースへ投げられたSQLを実行される度に記録したいが、どうすれば良いだろう? PostgreSQLでは設定ファイル「postgresql.conf」内にある「log_statement」の設定を変更すれば良い。

PostgreSQLでは8.0からログの記録に関する機能が強化されている。log_statementの部分に、none, mod, ddl, allのいずれかの値を記録すれば良い。

log_statement = 'mod'   # none, mod, ddl, all

変更後はpostgresを再起動すること。それぞれの値の意味は次のようになる。

= none:記録しない。デフォルトは通常これ。
= ddl:CREATE、ALTER、DROPなどのデータ定義文
= mod:"ddl"+INSERT、UPDATE、DELETE、TRUNCATE、COPY FROMなど、データに変更を加えるもの
= all:すべてのSQLを記録

なお、SQL文そのものに文法エラーなどがあり実行されなかった場合はデフォルトでは記録されない。つまり“all”であったとしても、データベースへ投げられた全てのSQLが記録されるわけではないのだ。  ※記録したい場合は「log_min_error_statement」の値を変更する。

参考ページ

関連書籍

failed to fetch data: unkown error

failed to fetch data: unkown error

failed to fetch data: unkown error

failed to fetch data: unkown error

関連ページ

postgresql/log_statement.txt · 最終更新: 2020/06/23 14:10 (外部編集)