(output_dir, dist_rank=0, name='')
| 52 | |
| 53 | |
| 54 | def create_logger(output_dir, dist_rank=0, name=''): |
| 55 | # create logger |
| 56 | logger = logging.getLogger(name) |
| 57 | logger.setLevel(logging.INFO) |
| 58 | logger.propagate = False |
| 59 | |
| 60 | # create formatter |
| 61 | fmt = '[%(asctime)s %(name)s] (%(filename)s %(lineno)d): %(levelname)s %(message)s' |
| 62 | color_fmt = colored('[%(asctime)s %(name)s]', 'green') + \ |
| 63 | colored('(%(filename)s %(lineno)d)', 'yellow') + ': %(levelname)s %(message)s' |
| 64 | |
| 65 | # create console handlers for master process |
| 66 | if dist_rank == 0: |
| 67 | console_handler = logging.StreamHandler(sys.stdout) |
| 68 | console_handler.setLevel(logging.DEBUG) |
| 69 | console_handler.setFormatter( |
| 70 | logging.Formatter(fmt=color_fmt, datefmt='%Y-%m-%d %H:%M:%S')) |
| 71 | logger.addHandler(console_handler) |
| 72 | |
| 73 | # create file handlers |
| 74 | file_handler = logging.FileHandler(os.path.join(output_dir, f'log_rank{dist_rank}_{int(time.time())}.txt'), mode='a') |
| 75 | file_handler.setLevel(logging.DEBUG) |
| 76 | file_handler.setFormatter(logging.Formatter(fmt=fmt, datefmt='%Y-%m-%d %H:%M:%S')) |
| 77 | logger.addHandler(file_handler) |
| 78 | |
| 79 | return logger |
nothing calls this directly
no outgoing calls
no test coverage detected