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