def setup_logging(logger_name, verbose_level: int=0, filename: str=None): level = None if verbose_level == -1: level = logging.CRITICAL if verbose_level is 0: level = logging.INFO elif verbose_level >= 1: level = logging.DEBUG formatter = logging.Formatter(fmt="%(asctime)-10s%(message)s", datefmt="%H:%M:%S") stdout_handler = ColorizingStreamHandler() stdout_handler.setFormatter(formatter) stdout_handler.stream = sys.stderr if not filename: filename = 'last.log' file_handler = logging.FileHandler(filename=filename, mode='w') file_handler.setFormatter(formatter) root = logging.getLogger() root.addHandler(stdout_handler) root.addHandler(file_handler) root.setLevel(level) return logging.getLogger(logger_name)