import logging import colorlog from constants import LOG_PATH def init_logger(dunder_name, testing_mode) -> logging.Logger: log_format = ( "%(asctime)s - " "%(name)s - " "%(funcName)s - " "%(levelname)s - " "%(message)s" ) """ Initialize logging """ bold_seq = "\033[1m" colorlog_format = f"{bold_seq} " "%(log_color)s " f"{log_format}" colorlog.basicConfig(format=colorlog_format) logger = logging.getLogger(dunder_name) if testing_mode: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) fh = logging.FileHandler(f"{LOG_PATH}/app.log") fh.setLevel(logging.DEBUG) formatter = logging.Formatter(log_format) fh.setFormatter(formatter) logger.addHandler(fh) fh = logging.FileHandler(f"{LOG_PATH}/app.warning.log") fh.setLevel(logging.WARNING) formatter = logging.Formatter(log_format) fh.setFormatter(formatter) logger.addHandler(fh) fh = logging.FileHandler(f"{LOG_PATH}/app.error.log") fh.setLevel(logging.ERROR) formatter = logging.Formatter(log_format) fh.setFormatter(formatter) logger.addHandler(fh) return logger