File: //usr/lib/python3/dist-packages/twisted/python/__pycache__/syslog.cpython-38.pyc
U
W[� � @ sV d Z ed�ZddlmZ ddlmZ dZejZ eG dd� d��Z
dee dfd d
�ZdS )zo
Classes and utility functions for integrating Twisted and syslog.
You probably want to call L{startLogging}.
�syslog� )�log)� _oldStylec @ s2 e Zd ZdZejZejZeefdd�Zdd� Z dS )�SyslogObserveraU
A log observer for logging to syslog.
See L{twisted.python.log} for context.
This logObserver will automatically use LOG_ALERT priority for logged
failures (such as from C{log.err()}), but you can use any priority and
facility by setting the 'C{syslogPriority}' and 'C{syslogFacility}' keys in
the event dict.
c C s | � |||� dS )a�
@type prefix: C{str}
@param prefix: The syslog prefix to use.
@type options: C{int}
@param options: A bitvector represented as an integer of the syslog
options to use.
@type facility: C{int}
@param facility: An indication to the syslog daemon of what sort of
program this is (essentially, an additional arbitrary metadata
classification for messages sent to syslog by this observer).
N)�openlog)�self�prefix�options�facility� r �7/usr/lib/python3/dist-packages/twisted/python/syslog.py�__init__% s zSyslogObserver.__init__c C s� t �|�}|dkrdS tj}d}|d r.tj}d|krBt|d �}d|krVt|d �}|�d�}|dd� dgkr||�� q`d }|D ]2}|r�d
}nd| }| �||B d|d
|f � q�dS )a�
Send a message event to the I{syslog}.
@param eventDict: The event to send. If it has no C{'message'} key, it
will be ignored. Otherwise, if it has C{'syslogPriority'} and/or
C{'syslogFacility'} keys, these will be used as the syslog priority
and facility. If it has no C{'syslogPriority'} key but a true
value for the C{'isError'} key, the B{LOG_ALERT} priority will be
used; if it has a false value for C{'isError'}, B{LOG_INFO} will be
used. If the C{'message'} key is multiline, each line will be sent
to the syslog separately.
Nr ZisErrorZsyslogPriorityZsyslogFacility�
���� TF� z[%s] %s�system)r ZtextFromEventDictr ZLOG_INFOZ LOG_ALERT�int�split�pop)r Z eventDict�textZpriorityr
�linesZ firstLine�liner r r �emit7 s,
�zSyslogObserver.emitN)
�__name__�
__module__�__qualname__�__doc__r r �DEFAULT_OPTIONS�DEFAULT_FACILITYr
r r r r r r s
�
r ZTwisted� c C s t | ||�}tj|j|d� dS )a
Send all Twisted logging output to syslog from now on.
The prefix, options and facility arguments are passed to
C{syslog.openlog()}, see the Python syslog documentation for details. For
other parameters, see L{twisted.python.log.startLoggingWithObserver}.
)� setStdoutN)r r ZstartLoggingWithObserverr )r r r
r! Zobsr r r �startLoggingc s r"