タイプ: enum
デフォルト: none
コンテキスト: superuser
再起動: false
値: [none, ddl, mod, all]

どのSQL文をログに記録するかを制御します。有効な値は、none(off)、ddlmod、およびall(全てのメッセージ)です。ddlは、CREATEALTER、およびDROP文といった、データ定義文を全てログに記録します。modは、全てのddl文に加え、INSERTUPDATEDELETETRUNCATE、およびCOPY FROMといった、データ変更文をログに記録します。PREPAREEXPLAIN ANALYZEコマンドも、そこに含まれるコマンドが適切な種類であればログが録られます。拡張問い合わせプロトコルを使用するクライアントでは、Executeメッセージを受け取った時にBindパラメータの値が(すべての単一引用符が二重にされた状態で)含まれていた場合、ログに記録されます。

デフォルトはnoneです。スーパーユーザのみこの設定を変更できます。

ログメッセージの発行は、基本解析により文の種類が決まった後に行われますので、log_statement = allという設定を行ったとしても、単純な構文エラーを持つ文は記録されません。拡張問い合わせプロトコルの場合も同様に、この設定ではExecute段階以前(つまり、解析や計画作成期間)に失敗した文は記録されません。こうした文のログを記録するには、log_min_error_statementERROR(以下)に設定してください。

推奨事項 [EN]

For exhaustive performance analysis on test systems, set to 'all'. Most production setups will just want to use 'ddl' to make sure to record database-altering actions, but very secure setups may want to use 'mod' or even 'all'. Can produce a lot of log volume.

件のコメント