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")

 

posted @ 2019-01-11 14:12  wutantan  阅读(825)  评论(0)    收藏  举报