python3+requests介面自動化-日誌封裝
阿新 • • 發佈:2018-11-11
1.logger.py這個檔案放到common目錄下,封裝日誌檔案的讀取
2.日誌儲存到logs資料夾
3.封裝程式碼
1 import logging 2 import os 3 import time 4 5 6 # log_path是日誌存放路徑地址 7 get_path = os.path.dirname(os.path.abspath(__file__)) 8 log_path = os.path.join(os.path.dirname(get_path),"log") 9 10 11 # 如果不存在這個logs資料夾,就自動建立一個 12 ifnot os.path.exists(log_path):os.mkdir(log_path) 13 14 class Log(): 15 def __init__(self): 16 # 檔案的命名 17 self.logname = os.path.join(log_path,"%s.log"%time.strftime("%Y:%m:%d")) 18 self.logger = logging.getLogger() 19 self.logger.setLevel(logging.DEBUG) 20 #日誌輸出格式 21 self.formatter = logging.Formatter('[%(asctime)s] - %(filename)s] - %(levelname)s: %(message)s') 22 23 def __console(self,level,message): 24 25 # 建立一個FileHandler,用於寫到本地 26 fh = logging.FileHandler(self.logname,"a",encoding='utf-8') # 追加模式 27 fh.setLevel(logging.DEBUG)28 fh.setFormatter(self.formatter) 29 self.logger.addHandler(fh) 30 31 # 建立一個StreamHandler,用於輸出到控制檯 32 ch = logging.StreamHandler() 33 ch.setLevel(logging.DEBUG) 34 ch.setFormatter(self.formatter) 35 self.logger.addHandler(ch) 36 37 if level == "info": 38 self.logger.info(message) 39 elif level == "debug": 40 self.logger.debug(message) 41 elif level == "warning": 42 self.logger.warning(message) 43 elif level == "error": 44 self.logger.error(message) 45 46 # 這兩行程式碼是為了避免日誌輸出重複問題 47 self.logger.removeHandler(ch) 48 self.logger.removeHandler(fh) 49 50 # 關閉開啟的檔案 51 fh.close() 52 53 def debug(self,message): 54 self.__console("debug",message) 55 56 def info(self,message): 57 self.__console("info",message) 58 def warning(self,message): 59 self.__console("warning",message) 60 def error(self,message): 61 self.__console("error",message) 62 63 if __name__ == "__main__": 64 log = Log() 65 log.info("--測試開始--") 66 log.info("操作步驟1,2,3") 67 log.warning("--測試結束--")