\section{Built-in Module \sectcode{syslog}}
\label{module-syslog}
\bimodindex{syslog}

This module provides an interface to the Unix \code{syslog} library
routines.  Refer to the \UNIX{} manual pages for a detailed description
of the \code{syslog} facility.

The module defines the following functions:

\begin{funcdesc}{syslog}{\optional{priority\,} message}
Send the string \var{message} to the system logger.
A trailing newline is added if necessary.
Each message is tagged with a priority composed of a \var{facility} and
a \var{level}.
The optional \var{priority} argument, which defaults to
\code{(LOG_USER | LOG_INFO)}, determines the message priority.
\end{funcdesc}

\begin{funcdesc}{openlog}{ident\, \optional{logopt\, \optional{facility}}}
Logging options other than the defaults can be set by explicitly opening
the log file with \code{openlog()} prior to calling \code{syslog()}.
The defaults are (usually) \var{ident} = \samp{syslog}, \var{logopt} = 0,
\var{facility} = \code{LOG_USER}.
The \var{ident} argument is a string which is prepended to every message.
The optional \var{logopt} argument is a bit field - see below for possible
values to combine.
The optional \var{facility} argument sets the default facility for messages
which do not have a facility explicitly encoded.
\end{funcdesc}

\begin{funcdesc}{closelog}{}
Close the log file.
\end{funcdesc}

\begin{funcdesc}{setlogmask}{maskpri}
This function set the priority mask to \var{maskpri} and returns the
previous mask value.
Calls to \code{syslog} with a priority level not set in \var{maskpri}
are ignored.
The default is to log all priorities.
The function \code{LOG_MASK(\var{pri})} calculates the mask for the
individual priority \var{pri}.
The function \code{LOG_UPTO(\var{pri})} calculates the mask for all priorities
up to and including \var{pri}.
\end{funcdesc}

The module defines the following constants:

\begin{description}

\item[Priority levels (high to low):]

\code{LOG_EMERG}, \code{LOG_ALERT}, \code{LOG_CRIT}, \code{LOG_ERR},
\code{LOG_WARNING}, \code{LOG_NOTICE}, \code{LOG_INFO}, \code{LOG_DEBUG}.

\item[Facilities:]

\code{LOG_KERN}, \code{LOG_USER}, \code{LOG_MAIL}, \code{LOG_DAEMON},
\code{LOG_AUTH}, \code{LOG_LPR}, \code{LOG_NEWS}, \code{LOG_UUCP},
\code{LOG_CRON} and \code{LOG_LOCAL0} to \code{LOG_LOCAL7}.

\item[Log options:]

\code{LOG_PID}, \code{LOG_CONS}, \code{LOG_NDELAY}, \code{LOG_NOWAIT}
and \code{LOG_PERROR} if defined in \file{syslog.h}.

\end{description}
