Source code for phenotrex.util.logging
#
# Created by Lukas Lüftinger on 2/5/19.
#
import logging
logging.addLevelName(logging.DEBUG, "\033[1;32m%s\033[1;0m" % logging.getLevelName(logging.DEBUG))
logging.addLevelName(logging.INFO, "\033[1;34m%s\033[1;0m" % logging.getLevelName(logging.INFO))
logging.addLevelName(logging.WARNING, "\033[1;33m%s\033[1;0m" % logging.getLevelName(logging.WARNING))
logging.addLevelName(logging.ERROR, "\033[1;41m%s\033[1;0m" % logging.getLevelName(logging.ERROR))
[docs]def get_logger(initname, verb=False):
"""
This function provides a logger to all scripts used in this project.
:param initname: The name of the logger to show up in log.
:param verb: Toggle verbosity
:return: the finished Logger object.
"""
logger = logging.getLogger(initname)
if type(verb) is bool:
logger.setLevel(logging.INFO if verb else logging.WARNING)
else:
logger.setLevel(verb) # TODO: hacky shit
ch = logging.StreamHandler()
ch.setLevel(logging.INFO if verb else logging.WARNING)
logstring = '\033[1;32m[%(asctime)s]\033[1;0m \033[1m%(name)s\033[1;0m - %(levelname)s - %(message)s'
formatter = logging.Formatter(logstring, '%Y-%m-%d %H:%M:%S')
ch.setFormatter(formatter)
if logger.hasHandlers():
logger.handlers.clear()
logger.addHandler(ch)
logger.propagate = False
return logger