CentOS 5.x postgresql-server 8.1 ログにタイムスタンプを付ける

パッケージのデフォルトではPostgreSQLのログは下記の場所に記録される。
/var/lib/pgsql/data/pg_log/postgresql-XXX.log

XXXはログの記録された日の曜日 Sun Mon Tue ... Sat
したがってログは1週間で上書きされる。

デフォルトではログのメッセージに日時が付かない。

/var/lib/pgsql/data/postgresql.conf の log_line_prefix の設定で
%t で タイムスタンプ(ミリ秒なし)を付加できる。

/var/lib/pgsql/data/postgresql.conf に以下を記述。

log_line_prefix = '%t '

設定を再読み込み。

# service postgresql reload

タイムスタンプが付くようになった。

# tail /var/lib/pgsql/data/pg_log/postgresql-Sat.log
ERROR:  syntax error at or near "VALUES" at character 1
LOG:  autovacuum: processing database "stock"
LOG:  received SIGHUP, reloading configuration files    ← 設定の再読み込みしている
2015-07-04 21:02:26 JST LOG:  autovacuum: processing database "postgres"    ← ここからタイムスタンプが付く
2015-07-04 21:03:26 JST LOG:  autovacuum: processing database "test"
2015-07-04 21:04:26 JST LOG:  autovacuum: processing database "testdb"
...

デフォルトでは log_line_prefix は未設定になっていて コメントに%1文字の特別な値の説明が書いてある。

#log_line_prefix = ''                   # Special values:
                                        #   %u = user name
                                        #   %d = database name
                                        #   %r = remote host and port
                                        #   %h = remote host
                                        #   %p = PID
                                        #   %t = timestamp (no milliseconds)
                                        #   %m = timestamp with milliseconds
                                        #   %i = command tag
                                        #   %c = session id
                                        #   %l = session line number
                                        #   %s = session start timestamp
                                        #   %x = transaction id
                                        #   %q = stop here in non-session
                                        #        processes
                                        #   %% = '%'
                                        # e.g. '<%u%%%d> '