Sys::Syslog(3) Perl Programmers Reference Guide Sys::Syslog(3)
Sys::Syslog, openlog, closelog, setlogmask, syslog - Perl interface to
the UNIX syslog(3) calls
use Sys::Syslog; # all except setlogsock, or:
use Sys::Syslog qw(:DEFAULT setlogsock); # default set, plus setlogsock
openlog $ident, $logopt, $facility; # don't forget this
syslog $priority, $format, @args;
$oldmask = setlogmask $mask_priority;
Sys::Syslog is an interface to the UNIX syslog(3) program. Call "sys-
log()" with a string priority and a list of "printf()" args just like
Syslog provides the functions:
openlog $ident, $logopt, $facility
$ident is prepended to every message. $logopt contains zero or
more of the words pid, ndelay, nowait. The cons option is ignored,
since the failover mechanism will drop down to the console automat-
ically if all other media fail. $facility specifies the part of
the system to report about, for example LOG_USER or LOG_LOCAL0: see
your syslog(3) documentation for the facilities available in your
You should use openlog() before calling syslog().
syslog $priority, $format, @args
If $priority permits, logs ($format, @args) printed as by
"printf(3V)", with the addition that %m is replaced with "$!" (the
latest error message).
If you didn't use openlog() before using syslog(), syslog will try
to guess the $ident by extracting the shortest prefix of $format
that ends in a ":".
Sets log mask $mask_priority and returns the old mask.
setlogsock $sock_type [$stream_location] (added in 5.004_02)
Sets the socket type to be used for the next call to "openlog()" or
"syslog()" and returns TRUE on success, undef on failure.
A value of 'unix' will connect to the UNIX domain socket (in some
systems a character special device) returned by the "_PATH_LOG"
macro (if your system defines it), or /dev/log or /dev/conslog,
whatever is writable. A value of 'stream' will connect to the
stream indicated by the pathname provided as the optional second
parameter. (For example Solaris and IRIX require 'stream' instead
of 'unix'.) A value of 'inet' will connect to an INET socket
(either tcp or udp, tried in that order) returned by getservby-
name(). 'tcp' and 'udp' can also be given as values. The value
'console' will send messages directly to the console, as for the
'cons' option in the logopts in openlog().
A reference to an array can also be passed as the first parameter.
When this calling method is used, the array should contain a list
of sock_types which are attempted in order.
The default is to try tcp, udp, unix, stream, console.
Giving an invalid value for sock_type will croak.
Closes the log file.
Note that "openlog" now takes three arguments, just like openlog(3).
openlog($program, 'cons,pid', 'user');
syslog('info', 'this is another test');
syslog('mail|warning', 'this is a better test: %d', time);
syslog('debug', 'this is the last test');
openlog("$program $$", 'ndelay', 'user');
syslog('notice', 'fooprogram: this is really done');
$! = 55;
syslog('info', 'problem was %m'); # %m == $! in syslog(3)
# Log to UDP port on $remotehost instead of logging locally
$Sys::Syslog::host = $remotehost;
openlog($program, 'ndelay', 'user');
syslog('info', 'something happened over here');
Tom Christiansen <firstname.lastname@example.org> and Larry Wall <email@example.com>.
UNIX domain sockets added by Sean Robinson <firstname.lastname@example.org>
with support from Tim Bunce <Tim.Bunce@ig.co.uk> and the perl5-porters
Dependency on syslog.ph replaced with XS code by Tom Hughes <tom@comp-
Code for constant()s regenerated by Nicholas Clark <email@example.com>.
Failover to different communication modes by Nick Williams
perl v5.8.6 2001-09-21 Sys::Syslog(3)