Files
Sheerka-Old/src/core/sheerka_logger.py
T

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