編寫logger模塊:
# _*_ coding: utf-8 _*_ import logging import os.path import time import os import sys class Logger(object): def __init__(self, logger): """ 指定保存日誌的文件路徑,日誌級別,以及調用文件 將日誌存入到指定的文件中 :param logger: """ # 創建一個logger self.logger = logging.getLogger(logger) self.logger.setLevel(logging.DEBUG) # 創建一個handler,用於寫入日誌文件 rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time())) log_path = os.path.dirname(os.getcwd()) + '/Logs' print(log_path) log_name = log_path + rq + '.log' fh = logging.FileHandler(log_name) fh.setLevel(logging.INFO) # 再創建一個handler,用於輸出到控制檯 ch = logging.StreamHandler() ch.setLevel(logging.INFO) # 定義handler的輸出格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) ch.setFormatter(formatter) # 給logger添加handler self.logger.addHandler(fh) self.logger.addHandler(ch) def getlog(self): return self.logger
引用logger模塊,編寫測試日誌文件:
# coding=utf-8 import time from selenium import webdriver from unittest_demo.logger import Logger mylogger = Logger(logger='TestMyLog').getlog() class TestMyLog(object): def print_log(self): chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" driver = webdriver.Chrome(executable_path=chrome_driver) mylogger.info("打開瀏覽器") driver.maximize_window() mylogger.info("最大化瀏覽器窗口。") driver.implicitly_wait(8) driver.get("https://www.baidu.com") mylogger.info("打開百度首頁。") time.sleep(1) mylogger.info("暫停一秒。") driver.quit() mylogger.info("關閉並退出瀏覽器。") testlog = TestMyLog() testlog.print_log()
執行結果:
E:\python3.8.2\python.exe C:/Users/jelena.zhao.SZ/PycharmProjects/requests/unittest_demo/test_log.py
C:\Users\jelena.zhao.SZ\PycharmProjects\requests/Logs
2020-06-05 17:46:07,354 - TestMyLog - INFO - 打開瀏覽器
2020-06-05 17:46:11,492 - TestMyLog - INFO - 最大化瀏覽器窗口。
2020-06-05 17:46:14,097 - TestMyLog - INFO - 打開百度首頁。
2020-06-05 17:46:15,097 - TestMyLog - INFO - 暫停一秒。
2020-06-05 17:46:17,262 - TestMyLog - INFO - 關閉並退出瀏覽器。
Process finished with exit code 0