日誌測試
1.導入logging模塊spa
2.簡單配置一下loggingdebug
3.出現異常的時候(except),向日志內寫入錯誤信息日誌
import logging # filename:文件名 # format:數據的格式化輸出,最終寫在日誌文件的樣子 # 時間-名稱-級別-模塊:錯誤信息 # datefmt:時間格式 # level:錯誤的級別權重,當錯誤的權重大於等於level的時候纔會被寫入 logging.basicConfig(filename = "hehe", format="%(asctime)s-%(name)s-%(levelname)s-%(module)s:%(message)s", datefmt="%Y-%m-%d %H:%M:%S", level = 10) # 當前配置表示 級別權重 大於等於10就會寫入日誌文件 logging.critical("我是級別權重50") logging.error("我是級別權重40") logging.warning("我是警告,級別權重30") logging.info("我是基本信息,級別權重20") logging.debug("我是測試,級別權重10") logging.log(23,"我是自定義")
簡單作個測試code
import logging import traceback logging.basicConfig(filename = "hehe", format="%(asctime)s-%(name)s-%(levelname)s-%(module)s:%(message)s", datefmt="%Y-%m-%d %H:%M:%S", level = 10) # 當前配置表示 級別權重 大於等於10就會寫入日誌文件 class JackError(Exception): pass for i in range(10): try: if i % 3 == 0: raise FileNotFoundError("文件不存在") elif i % 3 == 1: raise KeyError("key錯了") elif i % 3 == 2: raise JackError("JackException") except FileNotFoundError: val = traceback.format_exc() logging.error(val) except KeyError: val = traceback.format_exc() logging.error(val) except JackError: val = traceback.format_exc() logging.error(val) except Exception: val = traceback.format_exc() logging.error(val)
最後,若是你的系統中要把日誌分開,好比,一個大項目,有兩個子系統,那這兩個子系統要分開orm
記錄日誌,方便調用,那怎麼辦呢?注意,用上面的 basicConfig 是搞不定的,咱們要藉助文件助手對象
(fileHandler),來幫助咱們完成日誌的分開記錄 blog
import logging # 建立一個操做日誌的對象logger(依賴FileHandler) file_handler = logging.FileHandler("hehe","a",encoding = "utf-8") file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %" "(levelname)s - %(module)s:%(message)s")) logger1 = logging.Logger("目標名稱",level = logging.ERROR) logger1.addHandler(file_handler) logger1.error("我是A系統") # 再建立一個操做日誌的對象logging(依賴FileHandler) file_handler = logging.FileHandler("hehe","a",encoding = "utf-8") file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %" "(levelname)s - %(module)s:%(message)s")) logger2 = logging.Logger("目標名稱2",level= logging.ERROR) logger2.addHandler(file_handler) logger2.error("我是B系統")