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