o
    wÚ7ey  ã                   @   sÌ   d dl Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZej	Z	ej
Z
ejZejZejZejZejZejZdZejej_edfdd„Zdd„ Zddd	„Zdd
d„Zddd„Zdd„ Zdd„ Zeƒ  dS )é    Nz6%(asctime)s - %(filename)s[%(levelname)s]: %(message)sc                 C   sŒ   |st  t¡}t  ¡ }|jD ]}t|dƒr)t|jdƒr)|jjdkr)| | ¡  d S qt  	t
j¡}| |¡ | | ¡ | |¡ | | ¡ d S )NÚstreamÚnamez<stderr>)ÚloggingÚ	FormatterÚDEF_CON_FORMATÚ	getLoggerÚhandlersÚhasattrr   r   ÚsetLevelÚStreamHandlerÚsysÚstderrÚsetFormatterÚ
addHandler)ÚlevelÚ	formatterÚrootÚhandlerÚconsole© r   ú//usr/lib/python3/dist-packages/cloudinit/log.pyÚsetupBasicLogging%   s   


€


r   c              	   C   sN   | sd S | j D ]}t|tjƒrz| ¡  W q ty   Y qw qt| jƒ d S ©N)r   Ú
isinstancer   r   ÚflushÚIOErrorÚflushLoggersÚparent)r   Úhr   r   r   r   6   s   
ÿýr   é#   c                    s$   t  ˆ d¡ ‡ fdd„}|t j_d S )NÚ
DEPRECATEDc                    s(   |   ˆ ¡r| jˆ ||fi |¤Ž d S d S r   )ÚisEnabledForÚ_log)ÚselfÚmessageÚargsÚkwargs©Úlvlr   r   Ú
deprecatedE   s   
ÿz+defineDeprecationLogger.<locals>.deprecated)r   ÚaddLevelNameÚLoggerr)   )r(   r)   r   r'   r   ÚdefineDeprecationLoggerB   s   r,   c              	   C   s:  | si } g }|   d¡}|rt|tƒr| t|ƒ¡ n4d| v rN| d D ]+}t|tƒr/| |¡ q"t|tjjƒrFdd„ |D ƒ}| d |¡¡ q"| t|ƒ¡ q"tƒ  d}|D ]*}z|d7 }| 	d¡rht
j |¡rhnt |¡}tj |¡ W  d S  ty   Y qUw |   d	d
¡}tj d| ¡ |r›tj d¡ tƒ  d S d S )NÚlogcfgÚlog_cfgsc                 S   s   g | ]}t |ƒ‘qS r   )Ústr)Ú.0Úcr   r   r   Ú
<listcomp>\   s    z setupLogging.<locals>.<listcomp>Ú
r   é   ú/Ú	log_basicTz0WARN: no logging configured! (tried %s configs)
zSetting up basic logging...
)Úgetr   r/   ÚappendÚcollectionsÚabcÚIterableÚjoinr,   Ú
startswithÚosÚpathÚisfileÚioÚStringIOr   ÚconfigÚ
fileConfigÚ	Exceptionr   r   Úwriter   )Úcfgr.   Úlog_cfgÚa_cfgÚcfg_strÚam_triedÚbasic_enabledr   r   r   ÚsetupLoggingL   sF   


ûÿ
þrM   Ú	cloudinitc                 C   s
   t  | ¡S r   )r   r   )r   r   r   r   r   …   s   
r   c                 C   sR   | sdS t | jƒ}|D ]}| ¡  | ¡  |  |¡ q|  t¡ |  t 	¡ ¡ dS )z§Remove all current handlers, unset log level and add a NullHandler.

    (Adding the NullHandler avoids "No handlers could be found for logger XXX"
    messages.)
    N)
Úlistr   r   ÚcloseÚremoveHandlerr
   ÚNOTSETr   r   ÚNullHandler)Úlogr   r   r   r   r   Ú_resetLogger‰   s   

rU   c                   C   s   t t ¡ ƒ t tƒ ƒ d S r   )rU   r   r   r   r   r   r   ÚresetLoggingš   s   rV   )r   r   )rN   )Úcollections.abcr9   rA   r   Úlogging.configÚlogging.handlersr>   r   ÚtimeÚCRITICALÚFATALÚERRORÚWARNINGÚWARNÚINFOÚDEBUGrR   r   Úgmtimer   Ú	converterr   r   r,   rM   r   rU   rV   r   r   r   r   Ú<module>   s4   





9
