
    HmdL	                     V    d dl Z d dl mZmZ d dlZd dlZ G d de          ZdZd	dZdS )
    N)Loggerhandlersc                       e Zd ZdZd ZdS )GLoggerzdLogger customizations for gsyncd.

    It implements a log format similar to that of glusterfs.
    c                    t          j        | ||g|R  }|j        t          |j                  z
  dz  |_        t          j        d          }|j                            d          }|rOt          t          |                                        d          d                             d          d         }nd}t          |d	          s|j        j        |_        t!          j        |          d
         |_        ||_        |S )Ni@B    self'   .z<top>funcNamer   )r   
makeRecordcreatedintnsecssys	_getframef_localsgetstrtypesplithasattrf_codeco_namer   logginggetLevelNamelvlnamctx)r	   namelevelarvfrcalleer    s           A/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/logutils.pyr   zGLogger.makeRecord   s    tT551555JRZ0G;]1(( 	d6ll##))#..q177<<R@CCCr:&& 	,)+BK(//2		    N)__name__
__module____qualname____doc__r    r(   r'   r   r      s-         
    r(   r   z_[%(asctime)s.%(nsecs)d] %(lvlnam)s [%(module)s{0}:%(lineno)s:%(funcName)s] %(ctx)s: %(message)sINFO c                    |rd|z   dz   }d }d }|r&|dv rt           j        }n|dk    rt           j        }n|}d}t                              |          }t          d|           t          _        t          j        t
                     t          j
        t          j        _        g t          j                    _        t          j                                        |            |gt          j        |          }t          j        ||          }|                    |           t          j                                        |           d S t          j        ||||            d S )	N())-z/dev/stderrz/dev/stdoutz%Y-%m-%d %H:%M:%Sroot)fmtdatefmt)streamformatr6   r"   )r   stderrstdoutLOGFMTr8   r   r   r4   setLoggerClasstimegmtime	Formatter	converter	getLoggerr   setLevelWatchedFileHandlersetFormatter
addHandlerbasicConfig)	r"   labellog_filefilenamer7   r6   r5   logging_handler	formatters	            r'   setup_loggingrL   -   sc    "ec!HF  +++ZFF&&ZFFH!G
--

C65))GL7###"&+G#%G   '''"5h??%#.57 7 7	$$Y///&&777776#&$+"'	) 	) 	) 	) 	) 	)r(   )r.   r/   r/   )r   r   r   r   r=   r   r;   rL   r-   r(   r'   <module>rM      s     $ $ $ $ $ $ $ $ 



     f   .; )  )  )  )  )  )r(   