def create_logger(log_file=None, rank=0, log_level=logging.INFO,time=True):
if rank>0:
logger_not_root = logging.getLogger(name=__name__)
logger_not_root.propagate = False
return logger_not_root
logger = logging.getLogger(__name__)
logger.setLevel(log_level)
if time:
datefmt = '%Y-%m-%d %H:%M:%S'
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s',datefmt=datefmt)
else:
formatter = logging.Formatter('%(message)s')
console = logging.StreamHandler()
console.setLevel(log_level)
console.setFormatter(formatter)
logger.addHandler(console)
if log_file is not None:
file_handler = logging.FileHandler(filename=log_file)
file_handler.setLevel(log_level)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.propagate = False
return logger
创建logger
log_file_path=os.path.join(args.output_dir,'log.txt')
logger = create_logger(log_file=log_file_path, rank=rank)
分行打印args
# 打印参数
message = '\n'.join([f'{k:<20}: {v}' for k, v in vars(args).items()])
logger.info(message)