\section{Built-in Module \module{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 \constant{LOG_INFO},
determines the message priority.  If the facility is not encoded in
\var{priority} using logical-or (\code{LOG_INFO | LOG_USER}), the
value given in the \function{openlog()} call is used.
\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 \function{openlog()} prior to calling
\function{syslog()}.  The defaults are (usually) \var{ident} =
\code{'syslog'}, \var{logopt} = \code{0}, \var{facility} =
\constant{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 \function{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):]

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

\item[Facilities:]

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

\item[Log options:]

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

\end{description}
