python日志输出
当当当,现在要来输出日志啦
1 import os 2 import readConfig as readConfig 3 import logging 4 from datetime import datetime 5 import threading 6 7 localReadConfig = readConfig.ReadConfig() //读取配置 8 9 10 class Log: 11 def __init__(self): 12 global logPath, resultPath, proDir 13 proDir = readConfig.proDir 14 resultPath = os.path.join(proDir, "result") 15 if not os.path.exists(resultPath): 16 os.mkdir(resultPath) 17 logPath = os.path.join(resultPath, str(datetime.now().strftime("%Y%m%d%H%M%S"))) 18 if not os.path.exists(logPath): 19 os.mkdir(logPath) 20 self.logger = logging.getLogger() 21 self.logger.setLevel(logging.DEBUG) //日志级别更改 22 23 # defined handler 24 handler = logging.FileHandler(os.path.join(logPath, "output.log")) 25 # defined formatter 26 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 27 handler.setFormatter(formatter) 28 self.logger.addHandler(handler) 29 30 def get_logger(self): 31 """ 32 get logger 33 :return: 34 """ 35 return self.logger 36 37 def build_start_line(self, case_no): 38 """ 39 write start line 40 :return: 41 """ 42 self.logger.info("--------" + case_no + " START--------") 43 44 def build_end_line(self, case_no): 45 """ 46 write end line 47 :return: 48 """ 49 self.logger.info("--------" + case_no + " END--------") 50 51 def build_case_line(self, case_name, code, msg): 52 """ 53 write test case line 54 :param case_name: 55 :param code: 56 :param msg: 57 :return: 58 """ 59 self.logger.info(case_name+" - Code:"+code+" - msg:"+msg) 60 61 def get_report_path(self): 62 """ 63 get report file path 64 :return: 65 """ 66 report_path = os.path.join(logPath, "report.html") 67 return report_path 68 69 def get_result_path(self): 70 """ 71 get test result path 72 :return: 73 """ 74 return logPath 75 76 def write_result(self, result): 77 """ 78 79 :param result: 80 :return: 81 """ 82 result_path = os.path.join(logPath, "report.txt") 83 fb = open(result_path, "wb") 84 try: 85 fb.write(result) 86 except FileNotFoundError as ex: 87 logger.error(str(ex)) 88 89 90 class MyLog: 91 log = None 92 mutex = threading.Lock() 93 94 def __init__(self): 95 pass 96 97 @staticmethod 98 def get_log(): 99 100 if MyLog.log is None: 101 MyLog.mutex.acquire() 102 MyLog.log = Log() 103 MyLog.mutex.release() 104 105 return MyLog.log 106 107 if __name__ == "__main__": 108 log = MyLog.get_log() 109 logger = log.get_logger() 110 logger.debug("test debug") 111 logger.info("test info")

浙公网安备 33010602011771号