File size: 1,493 Bytes
ab0f6ec | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | """
Logging util
@Author: penhe@microsoft.com
"""
__all__ = ['get_logger', 'set_logger']
import logging
import os
import pdb
logging.basicConfig(format = '%(asctime)s|%(levelname)s|%(name)s| %(message)s',
datefmt = '%m%d%Y %H:%M:%S',
level = logging.INFO)
logger=None
def set_logger(name, file_log=None, rank=0, verbose=1):
global logger
if not logger:
logger = logging.getLogger(name)
else:
logger.name = name
dirty_handlers = [h for h in logger.handlers]
if rank >= 0:
formatter = logging.Formatter(f'%(asctime)s|%(levelname)s|%(name)s|{rank:02}| %(message)s', datefmt='%m/%d/%Y %H:%M:%S')
else:
formatter = logging.Formatter(f'%(asctime)s|%(levelname)s|%(name)s| %(message)s', datefmt='%m/%d/%Y %H:%M:%S')
if file_log:
fh = logging.FileHandler(file_log)
fh.setLevel(logging.DEBUG)
fh.setFormatter(formatter)
logger.addHandler(fh)
# Stdout
# create console handler with a higher log level
ch = logging.StreamHandler()
if verbose > 0:
ch.setLevel(logging.INFO)
else:
ch.setLevel(logging.WARN)
ch.setFormatter(formatter)
logger.addHandler(ch)
for h in dirty_handlers:
logger.removeHandler(h)
logger.propagate=False
return logger
def get_logger(name='logging', file_log=None, rank=0, verbose=1):
global logger
if not logger:
logger = set_logger(name, file_log, rank, verbose)
return logger
|