2008-05-06
■ [perl]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][linux]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
コメントを書く