import logging import sys enabled = [] disabled = ["init", "sdp", "parsers", "evaluators", "verbose"] console_handler = logging.StreamHandler(sys.stdout) all_loggers = {} def set_enabled(to_enable): if to_enable is None: return if not hasattr(to_enable, "__iter__"): to_enable = [to_enable] enabled.extend(to_enable) def to_discard(logger_class): if logger_class in enabled: return False if logger_class not in disabled: return False return True def get_logger(logger_name): if logger_name in all_loggers: return all_loggers[logger_name] logger = logging.getLogger(logger_name) all_loggers[logger_name] = logger for d in disabled: if logger_name.startswith(d + ".") and to_discard(d): logger.disabled = True for e in enabled: if logger_name.startswith("verbose." + e): logger.disabled = False return logger