a '¡Dgi ã@s|ddlZddlZddlZddlmZe e¡Zejddœe ddœdd„Z edƒd d „ƒZ dddej dfd d „Z ddd„ZdS)éN)ÚtimedT)Ú log_levelÚexc_info)rÚreturncGs0|j||g|¢RŽ|j|g|¢Rd|iŽdS)Nr)ÚlogÚdebug)rÚmsgrrÚargs©r ú:/usr/lib/python3.9/site-packages/cloudinit/log/log_util.pyÚlogexc sr zWriting to consolecCs@t|dƒ�"}| |¡| ¡Wdƒn1s20YdS)NÚw)ÚopenÚwriteÚflush)ÚconpathÚtextZwfhr r r Úwrite_to_consoles  rc CsÀ|rtj |¡|rŠd}d}tj |¡rvzt||ƒd}Wn:tytd}tj |›d�¡|rp|  t j |¡Yn0|rŠ|sŠtj |¡|r¼|ddkr°|  ||dd…¡n |  ||¡dS)Nz /dev/consoleFTzFailed to write to /dev/consoleÚ éÿÿÿÿ) ÚsysÚstderrrÚosÚpathÚexistsrÚOSErrorÚstdoutrÚloggingÚWARNING) rZconsolerrrZfallback_to_stdoutrZwriting_to_console_workedZ console_errorr r r Ú multi_logs(      réú Error: {}FcCs&t| |¡tjd�|r"t |¡|S)züPrint 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ÚformatrrÚexit)rÚrcÚfmtZsys_exitr r r ÚerrorDs r()r r!F)rrrZcloudinit.performancerZ getLoggerÚ__name__ZLOGrÚintr rÚDEBUGrr(r r r r Ús$  ÿþ  ú ,