import logging import os from datetime import datetime def setup_logger(name: str, log_dir: str, rank: int = 0) -> logging.Logger: os.makedirs(log_dir, exist_ok=True) logger = logging.getLogger(name) logger.setLevel(logging.INFO if rank == 0 else logging.WARNING) logger.handlers.clear() formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") if rank == 0: file_handler = logging.FileHandler(os.path.join(log_dir, f"{name}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log")) file_handler.setFormatter(formatter) console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) logger.addHandler(file_handler) logger.addHandler(console_handler) return logger