python接口自动化(四十二)- 项目结构设计之大结局(超详解) (2)

 

python接口自动化(四十二)- 项目结构设计之大结局(超详解)

3、参开代码:

1 # -*- coding:utf-8 -*- 2 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 3 4 # 2.注释:包括记录创建时间,创建人,项目名称。 5 ''' 6 Created on 2019-5-30 7 @author: 杜宏 8 Project:项目结构设计 9 ''' 10 # 3.导入模块 11 import logging, time 12 import os 13 14 # log_path是存放日志的路径 15 cur_path = os.path.dirname(os.path.realpath(__file__)) 16 log_path = os.path.join(os.path.dirname(cur_path), 'logs') 17 # 如果不存在这个logs文件夹,就自动创建一个 18 if not os.path.exists(log_path): os.mkdir(log_path) 19 20 21 class Log(): 22 def __init__(self): 23 # 文件的命名 24 self.logname = os.path.join(log_path, '%s.log' % time.strftime('%Y_%m_%d')) 25 self.logger = logging.getLogger() 26 self.logger.setLevel(logging.DEBUG) 27 # 日志输出格式 28 self.formatter = logging.Formatter('[%(asctime)s] - %(filename)s] - %(levelname)s: %(message)s') 29 30 def __console(self, level, message): 31 # 创建一个FileHandler,用于写到本地 32 # fh = logging.FileHandler(self.logname, 'a') # 追加模式 这个是python2的 33 fh = logging.FileHandler(self.logname, 'a', encoding='utf-8') # 这个是python3的 34 fh.setLevel(logging.DEBUG) 35 fh.setFormatter(self.formatter) 36 self.logger.addHandler(fh) 37 38 # 创建一个StreamHandler,用于输出到控制台 39 ch = logging.StreamHandler() 40 ch.setLevel(logging.DEBUG) 41 ch.setFormatter(self.formatter) 42 self.logger.addHandler(ch) 43 44 if level == 'info': 45 self.logger.info(message) 46 elif level == 'debug': 47 self.logger.debug(message) 48 elif level == 'warning': 49 self.logger.warning(message) 50 elif level == 'error': 51 self.logger.error(message) 52 # 这两行代码是为了避免日志输出重复问题 53 self.logger.removeHandler(ch) 54 self.logger.removeHandler(fh) 55 # 关闭打开的文件 56 fh.close() 57 58 def debug(self, message): 59 self.__console('debug', message) 60 61 def info(self, message): 62 self.__console('info', message) 63 64 def warning(self, message): 65 self.__console('warning', message) 66 67 def error(self, message): 68 self.__console('error', message) 69 70 71 if __name__ == "__main__": 72 log = Log() 73 log.info("---测试开始----") 74 log.info("操作步骤1,2,3") 75 log.warning("----测试结束----")

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypzsg.html