PostgreSQL > ログの設定
更新日
2014-05-06
広告
postgresql (バージョン9.1) のログの設定方法を紹介します。
ログの設定は、設定ファイル (例えば /etc/postgresql/9.1/main/postgresql.conf) で行います。
logging_collector = onlogging_collector を on に設定すれば、 /var/lib/postgresql/9.1/main/pg_log 以下にログファイルが作成されます(環境によっては、ログファイルの作成場所は異なる場合があります)。例えば、以下のようなログがファイルに出力されます。
2014-03-02 17:03:04 JST LOG: database system is ready to accept connections 2014-03-02 17:03:04 JST LOG: autovacuum launcher started 2014-03-02 17:03:05 JST LOG: incomplete startup packetログのタイムスタンプをミリ秒まで出力したければ、以下の設定します。
log_line_prefix = '%m 'これで、以下のようになります。
2014-03-02 17:10:08.597 JST LOG: database system is ready to accept connections 2014-03-02 17:10:08.598 JST LOG: autovacuum launcher started 2014-03-02 17:10:08.892 JST LOG: incomplete startup packet
他にも %u (ユーザ名) や %d (データベース名) 、%p (プロセスID) を出力できます。
詳細なログを出力したければ、以下の設定を行います。
log_checkpoints = on log_connections = on log_statement = 'all'
log_checkpoints を on にすると、チェックポイント処理のログが出力されます。
log_connections を on にすると、コネクション接続のログが出力されます。
log_statement を on にすると、SQLクエリが出力されます。
2014-03-02 17:25:59.100 JST LOG: database system is ready to accept connections 2014-03-02 17:25:59.101 JST LOG: autovacuum launcher started 2014-03-02 17:25:59.428 JST LOG: connection received: host=[local] 2014-03-02 17:25:59.939 JST LOG: connection authorized: user=postgres database=postgres 2014-03-02 17:25:59.946 JST LOG: statement: SELECT d.datname as "Name", pg_catalog.pg_get_userbyid(d.datdba) as "Owner", pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding", d.datcollate as "Collate", d.datctype as "Ctype", pg_catalog.array_to_string(d.datacl, E'\n') AS "Access privileges" FROM pg_catalog.pg_database d ORDER BY 1;こんな感じになります。
広告
お問い合わせは sweng.tips@gmail.com まで。