
    hD                     f    S r \" S5      rSSKJr  Sr\R                  r " S S5      rS\\S4S jr	g	)
zo
Classes and utility functions for integrating Twisted and syslog.

You probably want to call L{startLogging}.
syslog    )logc                   \    \ rS rSrSr\R                  r\R
                  r\\4S jr	S r
Srg)SyslogObserver   a9  
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                 (    U R                  XU5        g)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facilitys       \/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/python/syslog.py__init__SyslogObserver.__init__#   s     	Vh/    c                    [         R                  " U5      nUc  g[        R                  nSnUS   (       a  [        R                  nSU;   a  [        US   5      nSU;   a  [        US   5      nUR                  S5      nUSS S/:X  a  UR                  5         USS S/:X  a  M  S	nU H9  nU(       a  S
nOSU-   nU R                  X4-  SR                  US   U5      5        M;     g)a6  
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   isErrorsyslogPrioritysyslogFacility
 TF	z[{}] {}system)	r   textFromEventDictr   LOG_INFO	LOG_ALERTintsplitpopformat)r
   	eventDicttextpriorityr   lines	firstLinelines           r   emitSyslogObserver.emit3   s     $$Y/< ??Y''Hy(9%567Hy(9%567H 

4 BCjRD IIK BCjRD  	D!	d{KK#Y%5%5i6I4%P r    N)__name__
__module____qualname____firstlineno____doc__r   r	   DEFAULT_OPTIONSDEFAULT_FACILITYr   r(   __static_attributes__r*   r   r   r   r      s+    	 nnG]]F'6AQ 0 )r   r   Twisted   c                 Z    [        XU5      n[        R                  " UR                  US9  g)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   startLoggingWithObserverr(   )r   r   r   r6   obss        r   startLoggingr9   _   s$     (
3C  Y?r   N)
r/   
__import__r   twisted.pythonr   r0   LOG_USERr1   r   r9   r*   r   r   <module>r=      sJ   
 
H	  ?? H HX o8HTU@r   