from logging.handlers import RotatingFileHandler from singleton import Singleton import logging import constants class Logger(metaclass=Singleton): def __init__(self): self.logger = logging.getLogger(constants.LOGGER_NAME) self.logger.setLevel(logging.DEBUG) file_handler = RotatingFileHandler(constants.LOG_FILE, maxBytes=constants.MAX_LOG_FILE_SIZE_BYTES, encoding='UTF-8', backupCount=1) file_handler.setLevel(logging.DEBUG) console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) formatter = logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%m-%d %H:%M') file_handler.setFormatter(formatter) console_handler.setFormatter(formatter) self.logger.addHandler(file_handler) self.logger.addHandler(console_handler) def get_logger(self): return self.logger logger_instance = Logger().get_logger()