github.com/platonnetwork/platon-go@v0.7.6/cases/common/log.py (about) 1 import logging 2 import os 3 import time 4 from logging import handlers 5 6 from conf.settings import BASE_DIR, RUN_LOG_LEVEL 7 8 9 class Logger(object): 10 level_relations = { 11 'debug': logging.DEBUG, 12 'info': logging.INFO, 13 'warning': logging.WARNING, 14 'error': logging.ERROR, 15 'crit': logging.CRITICAL 16 } 17 18 def __init__(self, filename, level='info', fmt="[%(asctime)s]-%(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s"): 19 self.logger = logging.getLogger(filename) 20 log_format = logging.Formatter(fmt) 21 self.logger.setLevel(self.level_relations.get(level)) 22 sh = logging.StreamHandler() 23 sh.setFormatter(log_format) 24 file = handlers.WatchedFileHandler(filename, encoding='UTF-8') 25 file.setFormatter(log_format) 26 self.logger.addHandler(sh) 27 self.logger.addHandler(file) 28 29 30 def setup_logger(logfile, loglevel): 31 log = Logger(logfile, level=loglevel) 32 return log 33 34 35 if not os.path.exists('{}/log'.format(BASE_DIR)): 36 os.makedirs('{}/log'.format(BASE_DIR)) 37 log = setup_logger('{}/log/{}.log'.format(BASE_DIR, str( 38 time.strftime("%Y-%m-%d", time.localtime()))), RUN_LOG_LEVEL).logger