def build_logger(logger_type='normal', **kwargs):
    """Builds a logger.

    Supported Logger types:
        `normal`: The default logger.
        `rich`: Record messages with decoration, using `rich` module.
        `dumb`: Do NOT record any message.

    Args:
        logger_type: Type of logger, which is case insensitive.
            (default: `normal`)
        **kwargs: Additional arguments.
    """
    assert isinstance(logger_type, str)
    logger_type = logger_type.lower()
    if logger_type not in _LOGGER_TYPES:
        raise ValueError(f'Invalid logger type `{logger_type}`!\n'
                         f'Types allowed: {_LOGGER_TYPES}.')
    if logger_type == 'normal':
        return Logger(**kwargs)
    if logger_type == 'rich':
        return RichLogger(**kwargs)
    if logger_type == 'dumb':
        return DumbLogger(**kwargs)
    raise NotImplementedError(f'Not implemented logger type `{logger_type}`!')
Builds a logger.

    Supported Logger types:
        `normal`: The default logger.
        `rich`: Record messages with decoration, using `rich` module.
        `dumb`: Do NOT record any message.

    Args:
        logger_type: Type of logger, which is case insensitive.
            (default: `normal`)
        **kwargs: Additional arguments.
    
utils/logger.py