一、日誌相關
1、日誌
概念:日誌就是用於記錄系統執行時的資訊,對一個事件的記錄,也稱log
1.1 日誌的作用
- 除錯程式
- 瞭解系統程式執行的情況,是否正常
- 系統程式執行故障分析與問題定位
- 用來做使用者行為分析和資料統計
1.2 日誌級別
級別:指日誌資訊的優先順序、重要性、嚴重程度
常見的日誌級別
日誌級別 描述 DEBUG 除錯級別,列印非誠詳細的日誌資訊,通暢用於對程式碼的除錯 INFO 資訊級別,列印一般的日誌資訊,突出強調程式的執行過程 WARNING 警告級別,列印警告日誌資訊,表明會出現潛在錯誤的情形,一般不影響軟體的正常使用 ERROR 錯誤級別,列印錯誤異常資訊,該級別的錯誤可能會導致系統的一些功能無法正常使用 CRITICAL 嚴重級別錯誤,一個嚴重的錯誤,這表明系統可能無法繼續執行 說明
- 上面列表中的日誌級別是從上到下一次升高,即:DEBUG< INFO<WARNING<ERROR<CRITICAL
- 當程式指定一個日誌級別後,程式會記錄所有日誌級別大於或等於指定日誌級別的日誌資訊,而不是僅僅記錄指定級別的日誌資訊
- 一般建議只使用前四個級別
2、logging模組
2.1 基本用法
import logging
loging.debug('這是一條除錯資訊')
logging.info('這是一條普通訊息')
logging.warning('這是一條警告資訊')
logging.error('這是一條錯誤資訊')
logging.critical('這是一條嚴重錯誤資訊')
2.2 設定日誌級別
logging.basicConfig(logging.DEBUG)
2.3 設定日誌格式
預設的日誌的格式為:
日誌級別:Logger名稱:日誌內容
自定義日誌格式:
logging.basicConfig(format = "%(levelname)s : %(message)s")
2.4 將日誌資訊輸出到檔案中
預設情況下Python的logging模組將日誌列印到了標準輸出中(控制檯)
將日誌資訊輸出到檔案中:
logging.basicConfig(filename='a.log')
3、日誌的高階用法
3.1、logging 日誌模組四大元件
元件名稱 類名 功能描述 日誌器 Logger 提供了程式使用日誌的入口 處理器 Hander 將logger建立的日誌記錄傳送到合適的目的輸出 格式器 Formatter 決定日誌記錄的最終輸出格式 過濾器 Filter 提供了更細粒度的控制工具來決定輸出哪條日誌記錄,丟棄哪條日誌記錄
3.2、模組關係
日誌器:提供了,記錄日誌的入口
處理器:政治將日誌器內容傳送到控制檯或檔案或網路,都是處理器乾的;每個日誌器都可以新增多個不同的處理器
格式器:處理器可以設定不同的格式,就需要使用格式器
過濾器:處理器需要過濾日誌資訊,就需要設定過濾器
3.3、Logger類
Logger物件任務:
- 向程式暴露記錄日誌的方法
- 基於日誌級別或Filter物件覺得要對那些日誌進行後續處理
- 將日誌訊息傳送給所有感興趣的日誌handles
如何建立Logger物件
logger = logging.getLogger()
logger = logging.getLogger("myLogger")
logging.getLogger()方法有一個可選引數name, 改參數列示將要返回的日誌器的名稱標識,如果不提供該引數,則返回root日誌物件。若以相同的name引數值多次呼叫getLogger()方法,將會返回指向同一個logger物件的引用
Logger常用的方法
方法 | 描述 |
---|---|
logger.debug() 、logger.info()、logger.warming()、logger.error()、logger.critical() | 列印日誌 |
logger.setLevel() | 設定日誌器將會處理的日誌訊息的最低嚴重級別 |
logger.addHandler() | 為該logger物件新增一個handler物件 |
logger.addFilter() | 為該logger物件新增一個filter物件 |