ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     o
    bP                     @   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 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stderrZsetFormatter
addHandler)level	formatterrootZhandlerZ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              	   C   s4  | 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"d}|D ]*}z|d7 }|dret	j
|rent|}tj| W  d S  ty|   Y qRw |  d	d
}tjd|  |rtjd t  d S d S )NZlogcfglog_cfgsc                 S   s   g | ]}t |qS r   )str).0cr   r   r   
<listcomp>R   s    z setupLogging.<locals>.<listcomp>
r      /Z	log_basicTz0WARN: no logging configured! (tried %s configs)
zSetting up basic logging...
)getr   r   appendcollectionsabcIterablejoin
startswithospathisfileioStringIOr   ZconfigZ
fileConfig	Exceptionr   r   writer   )Zcfgr   Zlog_cfgZa_cfgZcfg_strZam_triedZbasic_enabledr   r   r   setupLoggingB   sD   



r2   	cloudinitc                 C   s
   t | S r   )r   r   )r   r   r   r   r   z   s   
r   c                 C   sR   | sdS t | j}|D ]}|  |  | | q| t | t	  dS )zRemove 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   closeZremoveHandlerr
   NOTSETr   r   ZNullHandler)logr   r   r   r   r   _resetLogger~   s   

r8   c                   C   s   t t  t t  d S r   )r8   r   r   r   r   r   r   resetLogging   s   r9   r   )r3   )Zcollections.abcr&   r.   r   Zlogging.configZlogging.handlersr+   r   timeZCRITICALZFATALZERRORZWARNINGZWARNINFODEBUGr6   r   gmtimer   Z	converterr   r   r2   r   r8   r9   r   r   r   r   <module>   s2   



8
