:mod:`syslog` --- Unix syslog library routines
==============================================

.. module:: syslog
   :platform: Unix
   :synopsis: An interface to the Unix syslog library routines.


This module provides an interface to the Unix ``syslog`` library routines.
Refer to the Unix manual pages for a detailed description of the ``syslog``
facility.

The module defines the following functions:


.. function:: syslog([priority,] message)

   Send the string *message* to the system logger.  A trailing newline is added if
   necessary.  Each message is tagged with a priority composed of a *facility* and
   a *level*.  The optional *priority* argument, which defaults to
   :const:`LOG_INFO`, determines the message priority.  If the facility is not
   encoded in *priority* using logical-or (``LOG_INFO | LOG_USER``), the value
   given in the :func:`openlog` call is used.


.. function:: openlog(ident[, logopt[, facility]])

   Logging options other than the defaults can be set by explicitly opening the log
   file with :func:`openlog` prior to calling :func:`syslog`.  The defaults are
   (usually) *ident* = ``'syslog'``, *logopt* = ``0``, *facility* =
   :const:`LOG_USER`.  The *ident* argument is a string which is prepended to every
   message.  The optional *logopt* argument is a bit field - see below for possible
   values to combine.  The optional *facility* argument sets the default facility
   for messages which do not have a facility explicitly encoded.


.. function:: closelog()

   Close the log file.


.. function:: setlogmask(maskpri)

   Set the priority mask to *maskpri* and return the previous mask value.  Calls to
   :func:`syslog` with a priority level not set in *maskpri* are ignored.  The
   default is to log all priorities.  The function ``LOG_MASK(pri)`` calculates the
   mask for the individual priority *pri*.  The function ``LOG_UPTO(pri)``
   calculates the mask for all priorities up to and including *pri*.

The module defines the following constants:

Priority levels (high to low):
   :const:`LOG_EMERG`, :const:`LOG_ALERT`, :const:`LOG_CRIT`, :const:`LOG_ERR`,
   :const:`LOG_WARNING`, :const:`LOG_NOTICE`, :const:`LOG_INFO`,
   :const:`LOG_DEBUG`.

Facilities:
   :const:`LOG_KERN`, :const:`LOG_USER`, :const:`LOG_MAIL`, :const:`LOG_DAEMON`,
   :const:`LOG_AUTH`, :const:`LOG_LPR`, :const:`LOG_NEWS`, :const:`LOG_UUCP`,
   :const:`LOG_CRON` and :const:`LOG_LOCAL0` to :const:`LOG_LOCAL7`.

Log options:
   :const:`LOG_PID`, :const:`LOG_CONS`, :const:`LOG_NDELAY`, :const:`LOG_NOWAIT`
   and :const:`LOG_PERROR` if defined in ``<syslog.h>``.

