\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:

\setindexsubitem{(in module syslog)}

\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}
