# 8.17 `syslog` -- Unix syslog library routines

Availability: Unix.

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:

`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 `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 `openlog()` call is used.

`openlog`( | ident[, logopt[, facility]])

  Logging options other than the defaults can be set by explicitly opening the log file with `openlog()` prior to calling `syslog()`. The defaults are (usually) ident = `'syslog'`, logopt = `0`, facility = `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.

`closelog`( | )

  Close the log file.

`setlogmask`( | maskpri)

  Set the priority mask to maskpri and return the previous mask value. Calls to `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):

  `LOG_EMERG`, `LOG_ALERT`, `LOG_CRIT`, `LOG_ERR`, `LOG_WARNING`, `LOG_NOTICE`, `LOG_INFO`, `LOG_DEBUG`.

Facilities:

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

Log options:

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