Server IP : 172.67.216.182 / Your IP : 108.162.227.63 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /snap/core20/current/usr/lib/python3/dist-packages/cloudinit/log/ |
Upload File : |
import logging import os import sys from cloudinit.performance import timed LOG = logging.getLogger(__name__) def logexc( log, msg, *args, log_level: int = logging.WARNING, exc_info=True ) -> None: log.log(log_level, msg, *args) log.debug(msg, exc_info=exc_info, *args) @timed("Writing to console") def write_to_console(conpath, text): with open(conpath, "w") as wfh: wfh.write(text) wfh.flush() def multi_log( text, console=True, stderr=True, log=None, log_level=logging.DEBUG, fallback_to_stdout=True, ): if stderr: sys.stderr.write(text) if console: conpath = "/dev/console" writing_to_console_worked = False if os.path.exists(conpath): try: write_to_console(conpath, text) writing_to_console_worked = True except OSError: console_error = "Failed to write to /dev/console" sys.stdout.write(f"{console_error}\n") if log: log.log(logging.WARNING, console_error) if fallback_to_stdout and not writing_to_console_worked: # A container may lack /dev/console (arguably a container bug). # Additionally, /dev/console may not be writable to on a VM (again # likely a VM bug or virtualization bug). # # If either of these is the case, then write output to stdout. # This will result in duplicate stderr and stdout messages if # stderr was True. # # even though systemd might have set up output to go to # /dev/console, the user may have configured elsewhere via # cloud-config 'output'. If there is /dev/console, messages will # still get there. sys.stdout.write(text) if log: if text[-1] == "\n": log.log(log_level, text[:-1]) else: log.log(log_level, text) def error(msg, rc=1, fmt="Error:\n{}", sys_exit=False): r"""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) """ print(fmt.format(msg), file=sys.stderr) if sys_exit: sys.exit(rc) return rc