- NAME
- SYNOPSIS
- DESCRIPTION
- EXAMPLES
- DEPENDENCIES
- SEE ALSO
- AUTHOR

# 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;
        syslog $priority, $format, @args;
        $oldmask = setlogmask $mask_priority;
        closelog;

# DESCRIPTION

Sys::Syslog is an interface to the UNIX syslog(3) program. Call syslog() 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, cons, nowait. $facility specifies the part of the system

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

setlogmask $mask_priority

  Sets log mask $mask_priority and returns the old mask.

setlogsock $sock_type (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 returned by `_PATH_LOG` in syslog.ph. A value of 'inet' will connect to an INET socket returned by `getservbyname().` Any other value croaks.

  The default is for the INET socket to be used.

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)

# DEPENDENCIES

Sys::Syslog needs syslog.ph, which can be created with h2ph.

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