1. 程式人生 > 其它 >python自動寫工作日誌_python+selenium實現Web自動化:日誌處理

python自動寫工作日誌_python+selenium實現Web自動化:日誌處理

技術標籤:python自動寫工作日誌讓python os 不顯示日誌

一、前言

最近問我自動化的人確實有點多,個人突發奇想:想從0開始講解python+selenium實現Web自動化測試,請關注部落格持續更新!

這是python+selenium實現Web自動化第六篇博文

二、Selenium之-日誌處理

到這裡已經搞了好多,但是在排查問題的時候,不是很方便,我們需要對程式的執行中錯誤的地方進行記錄。

1.在 console 輸出log

可以將日誌資訊輸出的console中,但是這種方式不常用。日常更多使用的是2的方法,將日誌資訊輸出到log檔案中。

#!/usr/bin/env python# -*- encoding: utf-8 -*-"""@Time    :   2020/4/
[email protected]
: (C)Copyright 2017-2019, [email protected] : None"""import loggingclass RecordLog(object): def __init__(self): self.logger = logging.getLogger() self.logger.setLevel(logging.DEBUG) # 1. 在 console 中輸出日誌檔案 # 能夠將日誌資訊輸出到sys.stdout, sys.stderr 或者類檔案物件 # 日誌資訊會輸出到指定的stream中,如果stream為空則預設輸出到sys.stderr。 console = logging.StreamHandler(stream=None) # 將sys.stderr中的資訊新增到logger中 self.logger.addHandler(console) # 輸出除錯資訊 self.logger.debug("這是一條在控制檯線上的log") # 關閉流 console.close() # 移除 self.logger.removeHandler(console)if __name__ == "__main__": rl = RecordLog()
c143ad6123b4d7f8958d783a4e6ab90a.gif

2.輸出日誌到log檔案

#!/usr/bin/env python# -*- encoding: utf-8 -*-"""@Time    :   2020/4/[email protected] :   軟體測試技術群:[email protected] :   (C)Copyright 2017-2019, [email protected]    :   None"""import loggingimport osfrom datetime import datetimeclass RecordLog(object):    def __init__(self):        self.logger = logging.getLogger()        self.logger.setLevel(logging.DEBUG)        # 2.將log資訊輸出到log檔案中        # 2.1 先定位看將log檔案輸出到哪裡去        current_dir = os.path.dirname(os.path.abspath(__file__))        print(current_dir)  # D:MySpacePythonWebTestingutil        log_dir = os.path.join('../logs')        # 日誌名稱構建        log_file_name = datetime.now().strftime("%Y-%m-%d") + '.log'        log_file_path = log_dir + '/' + log_file_name        print(log_file_path)        # 2.2 好的,將日誌寫進log檔案中        self.file_handle = logging.FileHandler(log_file_path, 'a', encoding='utf-8')        formatter = logging.Formatter(            '%(asctime)s %(filename)s %(funcName)s %(levelno)s: [%(levelname)s] ---> %(message)s')        self.file_handle.setFormatter(formatter)        self.logger.addHandler(self.file_handle)    def get_log(self):        return self.logger    def close_handle(self):        self.logger.removeHandler(self.file_handle)        self.file_handle.close()if __name__ == "__main__":    rl = RecordLog()    log_info = rl.get_log()    log_info.debug('輸出到檔案中去')    rl.close_handle()