Hatena::Groupfragments

うまい棒の断片

2008-05-06

[]syslogにロギングする 12:03 はてなブックマーク - syslogにロギングする - うまい棒の断片

#!/usr/bin/perl
use Sys::Syslog qw(:DEFAULT setlogsock);

setlogsock 'unix';
# openlog($ident, $logopt, $facility)
openlog('ident', 'pid', 'local0');
# syslog($priority, $message)
syslog('info', 'hogehoge');
closelog();

setlogsockはperldoc Sys::Syslogいわく、

Sets the socket type to be used for the next call to "openlog()" or "syslog()" and returns true on success, "undef" on failure.

(中略)

The default is to try "tcp", "udp", "unix", "stream", "console".

だから場合によっては設定しなくてよい?


[][]syslog.confメモ 19:22 はてなブックマーク - syslog.confメモ - うまい棒の断片

ログファイル名の先頭のハイフン

こういうの。

local0.*            -/var/log/hoge.log

ハイフンをつけると、システムバッファをフラッシュしなくなる。

=> 障害時にログが少し消える可能性あり。

大量にロギングする場合、性能がちょっと上がる?


facilityを複数指定

コンマで複数指定できる。(priorityは出来ない)

*で全部指定もできる。(これはpriorityも出来る)

mail,news.=info

mail.infoとnews.infoをロギング


特定のpriorityだけロギングする

通常、facilityとpriorityを".(ドット)"で繋ぐと、

そのpriority以上のものをロギングする。

kern.notice

kernのnotice以上のpriorityをロギングする

ずばり指定したpriorityだけをロギングしたい場合は".="を使う。

mail.=info

特定のpriority以上のものをロギングしない

".!"を使う。

mail.!warn

特定のpriorityのものをロギングしない

!と=を併用する。

mail.!=error