PostgreSQL ログをテキストで吐き出す。

PostgreSQLの設定ファイルを変更する。

log_destination = 'stderr' //標準出力
logging_collector = on //よくわかんないけどここはonにしておく。
log_directory = '' //テキストを突っ込むディレクトリ
log_filename = 'test-%Y-%m-%d.log' //テキストのファイル名。このようにすると、年月日がファイル名に使える。
log_truncate_on_rotation = on //ここをonにしておくと、ローテーションやサイズで引っかかった時にファイルを上書きしてくれる。
log_rotation_age =  //ローテーションの設定(単位は分)。一日でログファイルを入れ替える。
log_rotation_size =  //ログファイルのサイズ上限の設定(単位はKB)。
log_line_prefix = '[%t][%p][%e] ' //ログを出力する際に付与する情報。この状態だと、時間、プロセスID、エラーコードを出力するようにしてある。最後に半角スペースを入れておくとプレフィックスとログメッセージに間隔ができて見やすくなる。
log_min_error_statement = error //ログに、問題となったSQL文を表示するようにする。

これだけでログを吐き出せるようになる。 さらに、

log_min_duration_statement = -1 //設定した時間以上の処理時間を要したSQLの、そのSQL文とその所要時間をログに出力するようにする。(-1の場合は無効)
log_autovacuum_min_duration = -1 //設定した時間以上の処理時間を要したautovacuum処理の、その処理で回収したガベージ量などの情報とその所要時間をログに出力する。(-1の場合は無効)

で便利な機能も追加できる。