import logging class Logger: def __init__(self, level): self.logger = logging.getLogger('TopMost') self.set_level(level) self._add_handler() self.logger.propagate = False def info(self, message): self.logger.info(f"{message}") def warning(self, message): self.logger.warning(f"WARNING: {message}") def set_level(self, level): levels = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] if level in levels: self.logger.setLevel(level) def _add_handler(self): sh = logging.StreamHandler() sh.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(message)s')) self.logger.addHandler(sh) # Remove duplicate handlers if len(self.logger.handlers) > 1: self.logger.handlers = [self.logger.handlers[0]]