ϪfDddZedZddlmZdZej ZGddZdeedfdZ y ) zo Classes and utility functions for integrating Twisted and syslog. You probably want to call L{startLogging}. syslog)logcReZdZdZej ZejZeefdZdZ y)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*|j|||y)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)selfprefixoptionsfacilitys 7/usr/lib/python3/dist-packages/twisted/python/syslog.py__init__zSyslogObserver.__init__#s VWh/ctj|}|ytj}d}|drtj}d|vrt |d}d|vrt |d}|j d}|dddgk(r|j|dddgk(rd }|D]4}|rd }nd |z}|j||zd j|d |6y)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. NrisErrorsyslogPrioritysyslogFacility TF z[{}] {}system) rtextFromEventDictrLOG_INFO LOG_ALERTintsplitpopformat)r eventDicttextpriorityr lines firstLinelines r emitzSyslogObserver.emit3s$$Y/ < ?? Y ''H y (9%567H y (9%567H 4 BCjRD IIKBCjRD   D! d{ KK8#Y%5%5i6I4%P   rN) __name__ __module__ __qualname____doc__rrDEFAULT_OPTIONSDEFAULT_FACILITYrr&rr rrs+ nnG ]]F'6AQ0 )rrTwistedc`t|||}tj|j|y)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)rrstartLoggingWithObserverr&)r r r r1obss r startLoggingr4_s& ( 3C  Y?rN) r* __import__rtwisted.pythonrr+LOG_USERr,rr4r-rr r8sJ  H ??HHX o8HTU @r