HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/usr/lib/python3/dist-packages/twisted/python/__pycache__/syslog.cpython-38.pyc
U


W[��@sVdZed�ZddlmZddlmZdZejZ	eGdd�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@s2eZdZdZejZejZeefdd�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.
    cCs|�|||�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__%szSyslogObserver.__init__cCs�t�|�}|dkrdStj}d}|dr.tj}d|krBt|d�}d|krVt|d�}|�d�}|dd�dgkr||��q`d	}|D]2}|r�d
}nd|}|�||Bd|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.
        NrZisErrorZsyslogPriorityZsyslogFacility�
����TF�	z[%s] %s�system)rZtextFromEventDictrZLOG_INFOZ	LOG_ALERT�int�split�pop)rZ	eventDict�textZpriorityr
�linesZ	firstLine�linerrr�emit7s,



�zSyslogObserver.emitN)
�__name__�
__module__�__qualname__�__doc__rr�DEFAULT_OPTIONS�DEFAULT_FACILITYr
rrrrrrs
�
rZTwisted�cCs 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)rrZstartLoggingWithObserverr)rr	r
r!Zobsrrr�startLoggingcs	r"N)r�
__import__rZtwisted.pythonrZtwisted.python._oldstylerrZLOG_USERrrr"rrrr�<module>sL�