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 {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