"""Модуль настройки логгера.

Содержит функцию для создания и настройки логгера
с выводом в стандартный поток.
"""

import logging


def get_logger(name: str) -> logging.Logger:
    """Создаёт и настраивает логгер.

    Args:
        name: Имя логгера (обычно __name__ модуля).

    Returns:
        logging.Logger: Настроенный экземпляр логгера.

    Пример:
        logger = get_logger(__name__)
        logger.debug("Тестовое сообщение")
    """

    logger = logging.getLogger(name)
    logger.setLevel(logging.DEBUG)

    # Настройка обработчика для вывода в консоль
    handler = logging.StreamHandler()
    handler.setLevel(logging.DEBUG)

    # Формат сообщений: время | имя логгера | уровень | сообщение
    formatter = logging.Formatter('%(asctime)s | %(name)s | %(levelname)s | %(message)s')
    handler.setFormatter(formatter)

    logger.addHandler(handler)

    return logger
