|  | :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. | 
|  |  | 
|  | .. availability:: Unix, not Emscripten, not WASI. | 
|  |  | 
|  | This module wraps the system ``syslog`` family of routines.  A pure Python | 
|  | library that can speak to a syslog server is available in the | 
|  | :mod:`logging.handlers` module as :class:`~logging.handlers.SysLogHandler`. | 
|  |  | 
|  | The module defines the following functions: | 
|  |  | 
|  |  | 
|  | .. function:: syslog(message) | 
|  | 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. | 
|  |  | 
|  | If :func:`openlog` has not been called prior to the call to :func:`syslog`, | 
|  | :func:`openlog` will be called with no arguments. | 
|  |  | 
|  | .. audit-event:: syslog.syslog priority,message syslog.syslog | 
|  |  | 
|  | .. versionchanged:: 3.2 | 
|  | In previous versions, :func:`openlog` would not be called automatically if | 
|  | it wasn't called prior to the call to :func:`syslog`, deferring to the syslog | 
|  | implementation to call ``openlog()``. | 
|  |  | 
|  | .. versionchanged:: 3.12 | 
|  | This function is restricted in subinterpreters. | 
|  | (Only code that runs in multiple interpreters is affected and | 
|  | the restriction is not relevant for most users.) | 
|  | :func:`openlog` must be called in the main interpreter before :func:`syslog` may be used | 
|  | in a subinterpreter.  Otherwise it will raise :exc:`RuntimeError`. | 
|  |  | 
|  |  | 
|  | .. function:: openlog([ident[, logoption[, facility]]]) | 
|  |  | 
|  | Logging options of subsequent :func:`syslog` calls can be set by calling | 
|  | :func:`openlog`.  :func:`syslog` will call :func:`openlog` with no arguments | 
|  | if the log is not currently open. | 
|  |  | 
|  | The optional *ident* keyword argument is a string which is prepended to every | 
|  | message, and defaults to ``sys.argv[0]`` with leading path components | 
|  | stripped.  The optional *logoption* keyword argument (default is 0) is a bit | 
|  | field -- see below for possible values to combine.  The optional *facility* | 
|  | keyword argument (default is :const:`LOG_USER`) sets the default facility for | 
|  | messages which do not have a facility explicitly encoded. | 
|  |  | 
|  | .. audit-event:: syslog.openlog ident,logoption,facility syslog.openlog | 
|  |  | 
|  | .. versionchanged:: 3.2 | 
|  | In previous versions, keyword arguments were not allowed, and *ident* was | 
|  | required. | 
|  |  | 
|  | .. versionchanged:: 3.12 | 
|  | This function is restricted in subinterpreters. | 
|  | (Only code that runs in multiple interpreters is affected and | 
|  | the restriction is not relevant for most users.) | 
|  | This may only be called in the main interpreter. | 
|  | It will raise :exc:`RuntimeError` if called in a subinterpreter. | 
|  |  | 
|  |  | 
|  | .. function:: closelog() | 
|  |  | 
|  | Reset the syslog module values and call the system library ``closelog()``. | 
|  |  | 
|  | This causes the module to behave as it does when initially imported.  For | 
|  | example, :func:`openlog` will be called on the first :func:`syslog` call (if | 
|  | :func:`openlog` hasn't already been called), and *ident* and other | 
|  | :func:`openlog` parameters are reset to defaults. | 
|  |  | 
|  | .. audit-event:: syslog.closelog "" syslog.closelog | 
|  |  | 
|  | .. versionchanged:: 3.12 | 
|  | This function is restricted in subinterpreters. | 
|  | (Only code that runs in multiple interpreters is affected and | 
|  | the restriction is not relevant for most users.) | 
|  | This may only be called in the main interpreter. | 
|  | It will raise :exc:`RuntimeError` if called in a subinterpreter. | 
|  |  | 
|  |  | 
|  | .. 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*. | 
|  |  | 
|  | .. audit-event:: syslog.setlogmask maskpri syslog.setlogmask | 
|  |  | 
|  | The module defines the following constants: | 
|  |  | 
|  |  | 
|  | .. data:: LOG_EMERG | 
|  | LOG_ALERT | 
|  | LOG_CRIT | 
|  | LOG_ERR | 
|  | LOG_WARNING | 
|  | LOG_NOTICE | 
|  | LOG_INFO | 
|  | LOG_DEBUG | 
|  |  | 
|  | Priority levels (high to low). | 
|  |  | 
|  |  | 
|  | .. data:: LOG_AUTH | 
|  | LOG_AUTHPRIV | 
|  | LOG_CRON | 
|  | LOG_DAEMON | 
|  | LOG_FTP | 
|  | LOG_INSTALL | 
|  | LOG_KERN | 
|  | LOG_LAUNCHD | 
|  | LOG_LPR | 
|  | LOG_MAIL | 
|  | LOG_NETINFO | 
|  | LOG_NEWS | 
|  | LOG_RAS | 
|  | LOG_REMOTEAUTH | 
|  | LOG_SYSLOG | 
|  | LOG_USER | 
|  | LOG_UUCP | 
|  | LOG_LOCAL0 | 
|  | LOG_LOCAL1 | 
|  | LOG_LOCAL2 | 
|  | LOG_LOCAL3 | 
|  | LOG_LOCAL4 | 
|  | LOG_LOCAL5 | 
|  | LOG_LOCAL6 | 
|  | LOG_LOCAL7 | 
|  |  | 
|  | Facilities, depending on availability in ``<syslog.h>`` for :const:`LOG_AUTHPRIV`, | 
|  | :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`, | 
|  | :const:`LOG_INSTALL` and :const:`LOG_RAS`. | 
|  |  | 
|  | .. versionchanged:: 3.13 | 
|  | Added :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`, | 
|  | :const:`LOG_INSTALL`, :const:`LOG_RAS`, and :const:`LOG_LAUNCHD`. | 
|  |  | 
|  | .. data:: LOG_PID | 
|  | LOG_CONS | 
|  | LOG_NDELAY | 
|  | LOG_ODELAY | 
|  | LOG_NOWAIT | 
|  | LOG_PERROR | 
|  |  | 
|  | Log options, depending on availability in ``<syslog.h>`` for | 
|  | :const:`LOG_ODELAY`, :const:`LOG_NOWAIT` and :const:`LOG_PERROR`. | 
|  |  | 
|  |  | 
|  | Examples | 
|  | -------- | 
|  |  | 
|  | Simple example | 
|  | ~~~~~~~~~~~~~~ | 
|  |  | 
|  | A simple set of examples:: | 
|  |  | 
|  | import syslog | 
|  |  | 
|  | syslog.syslog('Processing started') | 
|  | if error: | 
|  | syslog.syslog(syslog.LOG_ERR, 'Processing started') | 
|  |  | 
|  | An example of setting some log options, these would include the process ID in | 
|  | logged messages, and write the messages to the destination facility used for | 
|  | mail logging:: | 
|  |  | 
|  | syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL) | 
|  | syslog.syslog('E-mail processing initiated...') |