PostgreSQL のログ設定について、基本的に以下を参照すれば良いです。
データベースサポート最前線の現場から(8):
【PostgreSQL】最低限設定しておくべきログ関連パラメータ3選 (1/3)
http://www.atmarkit.co.jp/ait/articles/1702/16/news015.html
postgresql.conf の設定
postgresql.conf に以下を設定します。
logging_collector=on
log_line_prefix='[%t]%u %d %p[%l]'
log_min_duration_statement=5000
それプラスアルファで以下の設定もあると大変便利です。
log_directory = '/var/log/postgresql'
log_filename = 'postgresql.log'
log_file_mode = 0640
log_truncate_on_rotation = off
ログディレクトリの準備
Linux ディストリビューションによってログの場所がまちまちで、場合によっては postgres ユーザーにスイッチしないと参照できない場所にあったりします。
ログファイルは一律 /var/log/app_name 配下にまとめて adm グループなら参照できるとかにしておいたほうが管理がラクです。
あらかじめ以下のようにディレクトリも用意しておきます。
sudo mkdir -p /var/log/postgresql
sudo chown -R postgres:adm /var/log/postgresql
sudo chmod 750 /var/log/postgresql
ログローテーションの設定
最後にログローテーションの設定をする。
これも PostgreSQL 側は同じファイルに出力するようにしておいて OS の logrotate で制御するほうが他と一緒に管理しやすいのでオススメです。
ファイル /etc/logrotate.d/postgresql を作成し以下のとおり設定します。
/var/log/postgresql/*.log {
daily
compress
delaycompress
notifempty
copytruncate
missingok
create 0640 postgres adm
rotate 30
}
以上です。