%PDF- %PDF-
Direktori : /lib/python3/dist-packages/apport/ |
Current File : //lib/python3/dist-packages/apport/logging.py |
"""Legacy logging functions.""" import os import sys import time import typing def log(message, timestamp=False): """Log the given string to stdout. Prepend timestamp if requested.""" if timestamp: sys.stdout.write(f"{time.strftime('%x %X')}: ") print(message) def fatal(msg: str, *args: typing.Any) -> typing.NoReturn: """Print out an error message and exit the program.""" error(msg, *args) sys.exit(1) def error(msg, *args): """Print out an error message.""" if sys.stderr: sys.stderr.write("ERROR: ") sys.stderr.write(msg % args) sys.stderr.write("\n") def warning(msg, *args): """Print out an warning message.""" if sys.stderr: sys.stderr.write("WARNING: ") sys.stderr.write(msg % args) sys.stderr.write("\n") def memdbg(checkpoint): """Print current memory usage. This is only done if $APPORT_MEMDEBUG is set. """ if "APPORT_MEMDEBUG" not in os.environ or not sys.stderr: return memstat = {} with open("/proc/self/status", encoding="utf-8") as status_file: for line in status_file: if line.startswith("Vm"): (field, size, _) = line.split() memstat[field[:-1]] = int(size) / 1024.0 sys.stderr.write( f"Size: {memstat['VmSize']:.1f} MB, RSS: {memstat['VmRSS']:.1f} MB," f" Stk: {memstat['VmStk']:.1f} MB @ {checkpoint}\n" )