ó
Cü½cc           @   sH   d  Z  d d l Z d d l m Z d Z d d d „  ƒ  YZ e ƒ  Z d S(   s{   Central logging class for the Mailman system.

This might eventually be replaced by a syslog based logger, hence the name.
iÿÿÿÿN(   t   StampedLoggert   _Syslogc           B   sA   e  Z d  „  Z d „  Z d „  Z d d d „ Z e Z d „  Z RS(   c         C   s   i  |  _  d  S(   N(   t	   _logfiles(   t   self(    (    s5   /export/web/mailman/mailman/Mailman/Logging/Syslog.pyt   __init__$   s    c         C   s   |  j  ƒ  d  S(   N(   t   close(   R   (    (    s5   /export/web/mailman/mailman/Mailman/Logging/Syslog.pyt   __del__'   s    c         O   s   |  j  | | | | ƒ d  S(   N(   t   write_ex(   R   t   kindt   msgt   argst   kws(    (    s5   /export/web/mailman/mailman/Mailman/Logging/Syslog.pyt   write*   s    c         C   sü   | } |  j  j | ƒ } | s8 t | ƒ } |  j  | <n  y* | rN | | ;} n  | ra | | ;} n  Wn, t k
 r } d | t | ƒ | f } n Xy | j | d ƒ WnO t k
 r÷ t | t ƒ rÚ | j	 d d ƒ } n  | j t
 j | ƒ d ƒ n Xd  S(   Ns   Bad format "%s": %s: %ss   
s
   iso-8859-1t   replace(   R   t   getR    t	   Exceptiont   reprR   t   UnicodeErrort
   isinstancet   unicodet   encodet   quoprit   encodestring(   R   R   R	   R
   R   t   origmsgt   logft   e(    (    s5   /export/web/mailman/mailman/Mailman/Logging/Syslog.pyR   0   s"    c         C   s;   x' |  j  j ƒ  D] \ } } | j ƒ  q W|  j  j ƒ  d  S(   N(   R   t   itemsR   t   clear(   R   R   t   logger(    (    s5   /export/web/mailman/mailman/Mailman/Logging/Syslog.pyR   J   s    N(	   t   __name__t
   __module__R   R   R   t   NoneR   t   __call__R   (    (    (    s5   /export/web/mailman/mailman/Mailman/Logging/Syslog.pyR   #   s   			(    (   t   __doc__R   t   Mailman.Logging.StampedLoggerR    R   t   syslogR   (    (    (    s5   /export/web/mailman/mailman/Mailman/Logging/Syslog.pyt   <module>   s
   -