此篇筆記用於記錄自動化測試執行過后,自動輸出日志並指定保存路徑,方便測試人員進行查看。
大體的步驟可以分為一下幾步:
1、創建logger:logger = logging.getLoger()
2、創建handler:handler =logging.FileHandler() (FileHandler()將日志輸出到文件中)
3、定義formater(日志格式): formater = logging.Formater()
4、給handler添加formater:handler.setFormater(formater)
5、給logger添加handler: logger.addHandler(handler)
6、調用對應級別日志方法輸出日志;日志的級別:error>warning>info>debug
首先我們創建一個Log類,其中定義構造方法,定義日志輸出方法。
import logging class Log: #定義構造方法 def __init__(self, logname): #組織日志存放路徑+名稱+格式的一個字符串 self.logfile = "存放路徑" + "文件名稱" + ".log" #創建logger self.logger = logging.getLogger(logname) #設置logger日志級別,設置日志級別后,可以輸出設計級別以上級別的日志,默認warning級別 self.logger.setLevel(logging.DEBUG)#DEBUG級別以上可以輸出 #定義方法,實現日志的輸出 def __log_print_to_file(self, level, message): #創建handler,將日志輸出到文件中 handler = logging.FileHandler(self.logfile, "a")#a表示追加模式 #設置日志級別 handler.setLevel(logging.DEBUG)#DEBUG級別以上可以輸出 #定義formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')#asctime為時間,name為getLogger()中的name,levelname為日志級別,message為日志信息 #給handler添加formatter handler.setFormatter(formatter) #給logger添加handler self.logger.addHandler(handler) #根據傳入的level實現不同日志級別的輸出 if level == "debug": self.logger.debug(message) elif level == "info": self.logger.info(message) elif level == "warning": self.logger.warning(message) elif level == "error": self.logger.error(message) #避免日志的重復輸出 self.logger.removeHandler(handler) handler.close()#關閉打開的文件 #定義方法調用__log_print_to_file實現日志輸出 def log_debug(self,message): self.__log_print_to_file("debug", message) def log_info(self,message): self.__log_print_to_file("info", message) def log_warning(self,message): self.__log_print_to_file("warning", message) def log_error(self,message): self.__log_print_to_file("error", message)
附一個定義時間戳的方法,可以加在文件名當中,便於區分日志:
from datetime import datetime def get_shijianchuo(): now_time = datetime.now() #使用datetime模塊下的strftime()將取到的時間格式轉化為字符串 shijianchuo = datetime.strftime(now_time, '%Y%m%d%H%M%S') return shijianchuo