62 lines
1.3 KiB
Python
62 lines
1.3 KiB
Python
import logging
|
|
import sys
|
|
|
|
enabled = []
|
|
disabled = ["init", "sdp", "parsers", "evaluators", "verbose", "stats"]
|
|
|
|
console_handler = logging.StreamHandler(sys.stdout)
|
|
|
|
all_loggers = {}
|
|
|
|
def init_config(loggers):
|
|
if loggers is None:
|
|
return
|
|
|
|
if not hasattr(loggers, "__iter__"):
|
|
loggers = [loggers]
|
|
|
|
if "all" in loggers:
|
|
disabled.clear()
|
|
|
|
for logger in loggers:
|
|
if logger == "all":
|
|
continue
|
|
|
|
if logger.startswith("-"):
|
|
disabled.append(logger[1:])
|
|
elif logger.startswith("+"):
|
|
enabled.append(logger[1:])
|
|
else:
|
|
enabled.append(logger)
|
|
|
|
|
|
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 == d or 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
|