Sys::Syslogモジュールでsyslogを出力したい
以下の様なスクリプトでsyslogを出力したいのですが、出力することができません。どなたかご教授ください。
環境は
vine2.6r4
perl5.6.1
で、/etc/syslog.confにlocal4.* /var/log/hoge.logを追加後、syslogdを再起動しました。
プログラムを実行するとhoge.logファイルは出力されます。
また、logger -p local4.err messageでhoge.logにmessageが出力されることも確認済みです。
-------------
#!/usr/bin/perl -w
use strict;
use Sys::Syslog qw(:DEFAULT setlogsock);
# 実行ファイル名の取得
my ($prog_name) = $0;
$prog_name =~ s/(.*)\/(.*)/$2/;
# Sys::Syslogモジュールの引数
my($ident, $logopt, $facility);
my($ident) = $prog_name;
my($logopt) = 'ndelay';
my($facility) = 'local4';
# 処理開始
&put_syslog("info", "process start.");
sub put_syslog {
my($priority, $msg) = @_;
openlog($ident, $logopt, $facility) || die "put_syslog: can't open syslog\n";
syslog($priority, $msg);
closelog();
}