import logging import sys import yaml def getLogger(is_debug): if (is_debug): logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) formatter = logging.Formatter( fmt='%(asctime)s, %(levelname)-5s [%(filename)s:%(lineno)d, %(funcName)s] %(message)s' ) handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.DEBUG) handler.setFormatter(formatter) logger.propagate = False logger.addHandler(handler) return logger def getFunctionName(): import sys return sys._getframe(1).f_code.co_name # TODO: make output prettier def dumpObject(obj): return yaml.dump(obj) def getLineNum() -> int: from inspect import currentframe, getframeinfo return currentframe().f_back.f_lineno