text: # encoding: utf-8
  """
  @author:  wuxin.wang
  @contact: wuxin.wang@whu.edu.cn
  """
  
  import logging
  import os
  import sys
  
  
  def setup_logger(name, save_dir, distributed_rank):
      logger = logging.getLogger(name)
      logger.setLevel(logging.DEBUG)
      # don't log results for the non-master process
      if distributed_rank > 0:
          return logger
      ch = logging.StreamHandler(stream=sys.stdout)
      ch.setLevel(logging.DEBUG)
      formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s: %(message)s")
      ch.setFormatter(formatter)
      logger.addHandler(ch)
  
      if save_dir:
          fh = logging.FileHandler(os.path.join(save_dir, "log.txt"), mode='w')
          fh.setLevel(logging.DEBUG)
          fh.setFormatter(formatter)
          logger.addHandler(fh)
  
      return logger
  