import logging

class LoggerSingleton:
    _logger = None

    @staticmethod
    def get_logger():
        if LoggerSingleton._logger is None:
            LoggerSingleton._logger = logging.getLogger(__name__)

            LoggerSingleton._logger.setLevel(logging.INFO)

            formatter = logging.Formatter(
                "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
                datefmt="%Y-%m-%d %H:%M:%S"
            )

            console_handler = logging.StreamHandler()
            console_handler.setFormatter(formatter)
            
            file_handler = logging.FileHandler('tempora.log', encoding='utf-8')
            file_handler.setFormatter(formatter)
            
            LoggerSingleton._logger.addHandler(console_handler)
            LoggerSingleton._logger.addHandler(file_handler)

        return LoggerSingleton._logger