
    x[hi	                         d dl Z d dlZd dlZd dlmZ  e j
                  e      Ze j                  ddde	ddfdZ
 ed      d	        Zddde j                  dfd
ZddZy)    N)timedT)	log_levelexc_infor   returnc                X     | j                   ||g|   | j                  |g|d|i y )Nr   )logdebug)r   msgr   r   argss        8/usr/lib/python3/dist-packages/cloudinit/log/log_util.pylogexcr   
   s1     CGGIs"T"CIIc,t,H,    zWriting to consolec                     t        | d      5 }|j                  |       |j                          d d d        y # 1 sw Y   y xY w)Nw)openwriteflush)conpathtextwfhs      r   write_to_consoler      s7    	gs	 s		$		  s	   "8Ac                    |rt         j                  j                  |        |rUd}d}t        j                  j                  |      r	 t        ||        d}|r!|st         j                  j                  |        |r1| d   dk(  r|j                  || d d        y |j                  ||        y y # t        $ rI d}t         j                  j                  | d       |r |j                  t        j                  |       Y w xY w)Nz/dev/consoleFTzFailed to write to /dev/console
)sysstderrr   ospathexistsr   OSErrorstdoutr   loggingWARNING)	r   consoler   r   r   fallback_to_stdoutr   writing_to_console_workedconsole_errors	            r   	multi_logr(      s     

 $)!77>>'"< $/,0) &? JJT"
8tGGItCRy)GGIt$	 )  < A

  M?"!56GGGOO];	<s   B- -AC?>C?c                     t        |j                  |       t        j                         |rt        j                  |       |S )zPrint error to stderr and return or exit

    @param msg: message to print
    @param rc: return code (default: 1)
    @param fmt: format string for putting message in (default: 'Error:\n {}')
    @param sys_exit: exit when called (default: false)
    )file)printformatr   r   exit)r
   rcfmtsys_exits       r   errorr1   D   s-     
#**S/

+Ir   )   z	Error:
{}F)r"   r   r   cloudinit.performancer   	getLogger__name__LOGr#   intr   r   DEBUGr(   r1    r   r   <module>r:      s}     	 
 'g! '.oo- #-	-   mm)%Xr   