import logging class Logger(object): # 日志输出级别 level_relations = { 'debug': logging.DEBUG, 'info': logging.INFO, 'warning': logging.WARNING, 'error': logging.ERROR, 'critical': logging.CRITICAL } def __init__( self, filename, level='info', fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'): self.logger = logging.getLogger(filename) # 设置日志格式 format_str = logging.Formatter(fmt) # 设置日志级别 self.logger.setLevel(self.level_relations.get(level)) # 输出到控制台 sh = logging.StreamHandler() sh.setFormatter(format_str) # 输出到文件 th = logging.FileHandler( filename=filename, encoding='utf-8', mode='a') th.setFormatter(format_str) self.logger.addHandler(sh) self.logger.addHandler(th)