Source code for chop.tools.logger
import logging
from colorlog import ColoredFormatter
formatter = ColoredFormatter(
"%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
datefmt=None,
reset=True,
log_colors={
"DEBUG": "cyan",
"INFO": "green",
"WARNING": "yellow",
"ERROR": "red",
"CRITICAL": "red,bg_white",
},
secondary_log_colors={},
style="%",
)
handler = logging.StreamHandler()
handler.setFormatter(formatter)
root_logger = logging.getLogger("chop")
root_logger.addHandler(handler)
root_logger.propagate = False
[docs]
def set_logging_verbosity(level: str = "info"):
level = level.lower()
match level:
case "debug":
root_logger.setLevel(logging.DEBUG)
case "info":
root_logger.setLevel(logging.INFO)
case "warning":
root_logger.setLevel(logging.WARNING)
case "error":
root_logger.setLevel(logging.ERROR)
case "critical":
root_logger.setLevel(logging.CRITICAL)
case _:
raise ValueError(
f"Unknown logging level: {level}, should be one of: debug, info, warning, error, critical"
)
root_logger.info(f"Set logging level to {level}")
[docs]
def get_logger(name: str):
return root_logger.getChild(name)