docs: def get_logger(name=None):
      """
      Build a logger with the given name and returns the logger.
  
      :param name: The name for the logger. This is usually the module
                   name, ``__name__``.
      :return: logger object
      """
      logging.setLoggerClass(CustomLogger)
  
      logger = logging.getLogger(name)
      logger.setLevel(logging.DEBUG)
  
      logger.addHandler(_get_info_handler())
      logger.addHandler(_get_out_handler())
      logger.addHandler(_get_warn_handler())
      logger.addHandler(_get_error_handler())
      logger.addHandler(_get_critical_handler())
      logger.addHandler(_get_success_handler())
      logger.propagate = False
  
      return logger