32.41. Sys::Syslog
use Sys::Syslog; # Misses setlogsock.
use Sys::Syslog qw(:DEFAULT setlogsock); # Also gets setlogsock.
openlog($program, 'cons,pid', 'user');
syslog('info', 'this is another test');
syslog('mail|warning', 'this is a better test: %d', time());
closelog();
syslog('debug', 'this is the last test');
setlogsock('unix');
openlog("$program $$", 'ndelay', 'user');
syslog('info', 'problem was %m'); # %m == $! in syslogese
syslog('notice', 'fooprogram: this is really done');
setlogsock("unix"); # "inet" or "unix"
openlog("myprogname", $logopt, $facility);
syslog($priority, $format, @args);
$oldmask = setlogmask($mask_priority);
closelog();
The Sys::Syslog module acts like your C library's syslog(3)
function, sending messages to your system log daemon, syslogd(8).
It is especially useful in daemons and other programs lacking a
terminal to receive diagnostic output, or for security-minded
programs that want to produce a more lasting record of their actions
(or someone else's actions). Supported functions are:
openlog IDENT, OPTLIST, FACILITY
Establishes a connection with your friendly syslog daemon. IDENT
is the string to log messages under (like $0, your program
name). OPTLIST is a string with comma-separated options such
as "cons", "pid", and "ndelay". FACILITY is something
like "auth", "daemon", "kern", "lpr", "mail", "news"
or "user" for system programs, and one of "local0" ..
"local7" for local ones. Further messages are logged using the
given facility and identifying string.
syslog PRIORITY, FORMAT, ARGS
Sends a message to the daemon using the given PRIORITY. The
FORMAT is just like printf--filling in percent escapes using the following
ARGS--except that following the conventions of the
standard syslog(3) library function, the special escape "%m"
interpolates errno (Perl's $! variable) at that point.
setlogsock TYPE
TYPE must be either "inet" or "unix". Some systems' daemons
do not by default pay attention to incoming Internet-domain syslog
messages, so you might set this to "unix" instead, since it's not
the default.
closelog
Severs the connection with the daemon.
For this module to work prior to the 5.6.0 release of Perl, your
sysadmin had to run h2ph(1) on your sys/syslog.h include
file to create a sys/syslog.ph library file. However, this wasn't
done by default at Perl installation time. Later releases now use an
XS interface, so the sys/syslog.ph preparation is no longer needed.