import sys
import logging


class Logger:
    """
    Класс для настройки встроенной библиотеки для логов
    и возвращение готового для работы объекта
    """
    __log_level = 0

    @staticmethod
    def set_default_level(log_level):
        Logger.__log_level = log_level

    @staticmethod
    def get_logger(name=__name__):
        logger = logging.getLogger(name)

        log_level = {
            0: logging.DEBUG,
            1: logging.INFO,
            2: logging.WARNING,
            3: logging.ERROR,
            4: logging.CRITICAL
        }

        logger.setLevel(log_level.get(Logger.__log_level, 0))
        logging.basicConfig(stream=sys.stdout,
                            format="[%(levelname)s][%(name)s][%(asctime)s]: %(message)s",
                            datefmt="%d-%m-%Y %H:%M:%S")
        return logger
