ó
Cü½cc           @   s9   d  Z  d d l Z d d l m Z d d d „  ƒ  YZ d S(   sD   A mutiple sink logger.  Any message written goes to all sub-loggers.iÿÿÿÿN(   t   _logexct   MultiLoggerc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         G   s.   g  |  _  x | D] } |  j  j | ƒ q Wd  S(   N(   t   _MultiLogger__loggerst   append(   t   selft   argst   logger(    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyt   __init__   s    	c         C   s&   | |  j  k r" |  j  j | ƒ n  d  S(   N(   R   R   (   R   R   (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyt
   add_logger   s    c         C   s&   | |  j  k r" |  j  j | ƒ n  d  S(   N(   R   t   remove(   R   R   (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyt
   del_logger"   s    c         C   s@   x9 |  j  D]. } y | j | ƒ Wq
 t | | ƒ q
 Xq
 Wd  S(   N(   R   t   writeR    (   R   t   msgR   (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyR   &   s
    c         C   s"   x | D] } |  j  | ƒ q Wd  S(   N(   R   (   R   t   linest   line(    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyt
   writelines/   s    c         C   sL   xE |  j  D]: } t | d ƒ r
 y | j ƒ  WqD t | ƒ qD Xq
 q
 Wd  S(   Nt   flush(   R   t   hasattrR   R    (   R   R   (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyR   3   s    c         C   s[   xT |  j  D]I } y/ | t j k r> | t j k r> | j ƒ  n  Wq
 t | ƒ q
 Xq
 Wd  S(   N(   R   t   syst
   __stderr__t
   __stdout__t   closeR    (   R   R   (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyR   =   s    c         C   s:   x3 |  j  D]( } y | j ƒ  Wq
 t k
 r1 q
 Xq
 Wd  S(   N(   R   t   reprimet   AttributeError(   R   R   (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyR   G   s
    (
   t   __name__t
   __module__R   R   R
   R   R   R   R   R   (    (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyR      s   							
	
(    (   t   __doc__R   t   Mailman.Logging.UtilsR    R   (    (    (    s:   /export/web/mailman/mailman/Mailman/Logging/MultiLogger.pyt   <module>   s   