| |
| |
| |
| |
| |
| |
|
|
| import os |
| import sys |
| import logging |
| import functools |
| from termcolor import colored |
|
|
|
|
| @functools.lru_cache() |
| def create_logger(output_dir, dist_rank=0, name=''): |
| |
| logger = logging.getLogger(name) |
| logger.setLevel(logging.DEBUG) |
| logger.propagate = False |
|
|
| |
| fmt = '[%(asctime)s %(name)s] (%(filename)s %(lineno)d): %(levelname)s %(message)s' |
| color_fmt = colored('[%(asctime)s %(name)s]', 'green') + \ |
| colored('(%(filename)s %(lineno)d)', 'yellow') + ': %(levelname)s %(message)s' |
|
|
| |
| if dist_rank == 0: |
| console_handler = logging.StreamHandler(sys.stdout) |
| console_handler.setLevel(logging.DEBUG) |
| console_handler.setFormatter( |
| logging.Formatter(fmt=color_fmt, datefmt='%Y-%m-%d %H:%M:%S')) |
| logger.addHandler(console_handler) |
|
|
| |
| file_handler = logging.FileHandler(os.path.join(output_dir, f'log_rank{dist_rank}.txt'), mode='a') |
| file_handler.setLevel(logging.DEBUG) |
| file_handler.setFormatter(logging.Formatter(fmt=fmt, datefmt='%Y-%m-%d %H:%M:%S')) |
| logger.addHandler(file_handler) |
|
|
| return logger |
|
|