Python+selenium 日志輸出


  此篇筆記用於記錄自動化測試執行過后,自動輸出日志並指定保存路徑,方便測試人員進行查看。

  大體的步驟可以分為一下幾步:
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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM