51 lines
1.0 KiB
Python
51 lines
1.0 KiB
Python
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 is None:
|
|
return False
|
|
|
|
if logger_class in enabled or logger_class.strip(".") 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
|