mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 0f27672c50
			
		
	
	
		0f27672c50
		
			
		
	
	
	
	
		
			
			Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Jacob Coffee <jacob@z7x.org> Co-authored-by: Malcolm Smith <smith@chaquo.com> Co-authored-by: Ned Deily <nad@python.org>
		
			
				
	
	
		
			187 lines
		
	
	
	
		
			6.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
	
		
			6.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| :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 WASI, not iOS.
 | |
| 
 | |
| 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...')
 |