a 'Dgi @s|ddlZddlZddlZddlmZeeZejdde ddddZ edd d Z dddej dfd d Z dddZdS)N)timedT) log_levelexc_info)rreturncGs0|j||g|R|j|g|Rd|idS)Nr)logdebug)rmsgrrargsr :/usr/lib/python3.9/site-packages/cloudinit/log/log_util.pylogexc sr zWriting to consolecCs@t|d"}|||Wdn1s20YdS)Nw)openwriteflush)conpathtextZwfhr r r write_to_consoles  rc Cs|rtj||rd}d}tj|rvzt||d}Wn:tytd}tj|d|rp| t j |Yn0|r|stj||r|ddkr| ||ddn | ||dS)Nz /dev/consoleFTzFailed to write to /dev/console ) sysstderrrospathexistsrOSErrorstdoutrloggingWARNING) rZconsolerrrZfallback_to_stdoutrZwriting_to_console_workedZ console_errorr r r multi_logs(      r Error: {}FcCs&t||tjd|r"t||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)printformatrrexit)rrcfmtZsys_exitr r r errorDs r()r r!F)rrrZcloudinit.performancerZ getLogger__name__ZLOGrintr rDEBUGrr(r r r r s$     ,