Source code for poly_lithic.src.logging_utils.make_logger
import logging
import colorlog
[docs]
def make_logger(name='model_manager', level=logging.INFO):
logger = colorlog.getLogger(name)
handler = colorlog.StreamHandler()
formatter = colorlog.ColoredFormatter(
'%(log_color)s[%(filename)s:%(lineno)s:%(funcName)s] %(levelname)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.setFormatter(formatter)
# check if logger has handlers
if logger.hasHandlers():
logger.handlers.clear()
logger.addHandler(handler)
logger.setLevel(level)
logger.propagate = (
False # Prevent the log messages from being duplicated in the python consoles
)
return logger
[docs]
def get_logger():
logger = logging.getLogger('model_manager')
return logger
[docs]
def reset_logging():
# Remove all handlers from the root logger
root = logging.getLogger()
for handler in root.handlers[:]:
root.removeHandler(handler)
# Reset the logging configuration
logging.basicConfig(level=logging.ERROR)