Skip to content

Commit b361d6b

Browse files
rootCoinCheung
authored andcommitted
refine the logger setup
1 parent 63d4d9e commit b361d6b

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

lib/logger.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,32 @@
1010

1111

1212
def setup_logger(name, logpth):
13-
logfile = '{}-{}.log'.format(name, time.strftime('%Y-%m-%d-%H-%M-%S'))
14-
logfile = osp.join(logpth, logfile)
15-
FORMAT = '%(levelname)s %(filename)s(%(lineno)d): %(message)s'
16-
log_level = logging.INFO
17-
if dist.is_initialized() and dist.get_rank() != 0:
18-
log_level = logging.WARNING
13+
rank = dist.get_rank() if dist.is_initialized() else 0
14+
multi_gpu = dist.is_initialized() and dist.get_world_size() > 1
15+
rank_prefix = 'rank{} '.format(rank) if multi_gpu else ''
16+
FORMAT = '{}%(levelname)s %(filename)s(%(lineno)d): %(message)s'.format(rank_prefix)
17+
18+
if multi_gpu:
19+
obj_list = ['{}-{}.log'.format(name, time.strftime('%Y-%m-%d-%H-%M-%S'))
20+
if rank == 0 else None]
21+
dist.broadcast_object_list(obj_list, src=0)
22+
logfile = osp.join(logpth, obj_list[0])
23+
else:
24+
logfile = osp.join(logpth, '{}-{}.log'.format(name, time.strftime('%Y-%m-%d-%H-%M-%S')))
25+
26+
if dist.is_initialized() and rank != 0:
27+
fh = logging.FileHandler(logfile)
28+
fh.setLevel(logging.WARNING)
29+
fh.setFormatter(logging.Formatter(FORMAT))
30+
logging.root.setLevel(logging.WARNING)
31+
logging.root.addHandler(fh)
32+
return
33+
1934
try:
20-
logging.basicConfig(level=log_level, format=FORMAT, filename=logfile, force=True)
35+
logging.basicConfig(level=logging.INFO, format=FORMAT, filename=logfile, force=True)
2136
except Exception:
2237
for hl in logging.root.handlers: logging.root.removeHandler(hl)
23-
logging.basicConfig(level=log_level, format=FORMAT, filename=logfile)
38+
logging.basicConfig(level=logging.INFO, format=FORMAT, filename=logfile)
2439
logging.root.addHandler(logging.StreamHandler())
2540

2641

0 commit comments

Comments
 (0)