ABCDEFGHIJKLMNOPQRSTUVWXYZ

Sys::Syslog

Sys::Syslog(3)         Perl Programmers Reference Guide         Sys::Syslog(3)



NAME
       Sys::Syslog, openlog, closelog, setlogmask, syslog - Perl interface to
       the UNIX syslog(3) calls

SYNOPSIS
           use Sys::Syslog;                          # all except setlogsock, or:
           use Sys::Syslog qw(:DEFAULT setlogsock);  # default set, plus setlogsock

           setlogsock $sock_type;
           openlog $ident, $logopt, $facility;       # don't forget this
           syslog $priority, $format, @args;
           $oldmask = setlogmask $mask_priority;
           closelog;

DESCRIPTION
       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(3).

       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
           system.

           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 ":".

       setlogmask $mask_priority
           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.

       closelog
           Closes the log file.

       Note that "openlog" now takes three arguments, just like openlog(3).

EXAMPLES
           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('notice', 'fooprogram: this is really done');

           setlogsock('inet');
           $! = 55;
           syslog('info', 'problem was %m'); # %m == $! in syslog(3)

           # Log to UDP port on $remotehost instead of logging locally
           setlogsock('udp');
           $Sys::Syslog::host = $remotehost;
           openlog($program, 'ndelay', 'user');
           syslog('info', 'something happened over here');

SEE ALSO
       syslog(3)

AUTHOR
       Tom Christiansen <tchrist@perl.com> and Larry Wall <larry@wall.org>.

       UNIX domain sockets added by Sean Robinson <robinson_s@sc.maricopa.edu>
       with support from Tim Bunce <Tim.Bunce@ig.co.uk> and the perl5-porters
       mailing list.

       Dependency on syslog.ph replaced with XS code by Tom Hughes <tom@comp-
       ton.nu>.

       Code for constant()s regenerated by Nicholas Clark <nick@ccl4.org>.

       Failover to different communication modes by Nick Williams
       <Nick.Williams@morganstanley.com>.



perl v5.8.6                       2001-09-21                    Sys::Syslog(3)