import logging from sys import stdout from typing import Optional from logging import Logger as BuiltinLogger class Logger: _instance: Optional[BuiltinLogger] = None @staticmethod def get_logger(): if Logger._instance is None: logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) sh = logging.StreamHandler(stdout) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') sh.setFormatter(formatter) logger.addHandler(sh) Logger._instance = logger return Logger._instance