ログ出力の設定をしてみる
TweetPosted on Sunday Feb 02, 2014 at 10:43AM in Technology
環境
- PostgreSQL 9.2.4
- OS X 10.9.1
何をするか
- OS XのsyslogをPostgreSQLからのログ出力を受け入れられるように設定する
- PostgreSQLのログをsyslogへ出力するようにする
- 実行されるSQLのログを取ってみる
OS Xのsyslogの設定
/etc/syslog.confを編集する
一番下の行を追加する。こんな感じ。flat file logsは/etc/asl.confに設定されているとか書かれているのでそっちに書いた方がいいのかもしれないけど面倒なのでここで
# Note that flat file logs are now configured in /etc/asl.conf install.* @127.0.0.1:32376 local0.* /var/log/postgresql
設定内容を反映させる
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
こんなんでもよい
ps -Af | awk '/\/usr\/sbin\/syslogd$/{print "sudo kill -HUP " $2}' | sh
ログを出力してみる
kyle-no-MacBook:etc kyle$ logger -p local0.notice hogehoge kyle-no-MacBook:etc kyle$ ls -l /var/log/postgresql -rw-r--r--@ 1 root wheel 58 2 2 10:55 /var/log/postgresql kyle-no-MacBook:etc kyle$ cat /var/log/postgresql Feb 2 10:55:06 kyle-no-MacBook.local kyle[880]: hogehoge kyle-no-MacBook:etc kyle$
ちゃんと出ていますね。「コンソール」からも内容を見られるのは便利かも
PostgreSQLの設定
$PG_HOME/data/postgresql.confを編集
sudo su postgres -c 'vi /Library/PostgreSQL/9.2/data/postgresql.conf'
以下内容にする
log_destination = 'syslog' syslog_facility = 'LOCAL0' syslog_ident = 'postgres' log_statement = 'all'
一番下がSQLをログに出す設定。大量に出るので要注意
再起動
sudo su postgres -c 'pg_ctl -D /Library/PostgreSQL/9.2/data restart'
ログを見てみる
kyle-no-MacBook:~ kyle$ psql Password: psql (9.2.4) Type "help" for help. kyle=# select now(); now ------------------------------ 2014-02-02 11:32:20.67332+09 (1 row) kyle=# \q kyle-no-MacBook:~ kyle$ cat /var/log/postgresql.log Feb 2 11:20:21 kyle-no-MacBook.local kyle[1002]: hogehogehoge Feb 2 11:31:24 kyle-no-MacBook.local postgres[1073]: [1-1] 2014-02-02 11:31:24 JST LOG: database system was shut down at 2014-02-02 11:31:23 JST Feb 2 11:31:24 kyle-no-MacBook.local postgres[1077]: [1-1] 2014-02-02 11:31:24 JST LOG: autovacuum launcher started Feb 2 11:31:24 kyle-no-MacBook.local postgres[1071]: [1-1] 2014-02-02 11:31:24 JST LOG: database system is ready to accept connections Feb 2 11:31:30 kyle-no-MacBook.local postgres[1083]: [2-1] 2014-02-02 11:31:30 JST LOG: incomplete startup packet Feb 2 11:32:20 kyle-no-MacBook.local postgres[1098]: [2-1] 2014-02-02 11:32:20 JST LOG: statement: select now(); kyle-no-MacBook:~ kyle$
出てますね
その他
できればSQLのログはシビリティをdebugとかにしたいので若干調べた[6]が、よくわからん。現状無理ということだろうか
参考文献
- Linux管理者への道(3):システム管理の基礎 syslogdの設定をマスターしよう (2/3) - @IT
- ログ関連の設定 — Let's Postgres
- 第10回Mac OS X Server勉強会 Mac OSXシステム管理 読書会「ログ」 - サイト更新停滞ちうっ
- 新世代syslogデーモン徹底活用(1):syslogdの限界と次世代シスログデーモン (1/3) - @IT
- PostgreSQL/PostgreSQLでSQLステートメントをログファイルに出力する方法 - 調べる.db
- [GENERAL] log_statement and syslog severity - Google グループ
Tags: postgres