logging
logging是用來記錄(logging)事件的模組。logging的主要用途是把希望印出的訊息依據嚴重程度切分數個等級,並將格式化後的訊息輸出至檔案或標準輸出、標準錯誤。由於logging將輸出訊息切分得很細緻,且具有很好的靈活度,因此在程式正式上線時常用來取代print、stdout、stderr等輸出方式。
承上段,logging將輸出依照事件的嚴重性切分,當輸出等級高於指定的閥值時,則輸出訊息;若事件等級低於指定的閥值時,則不輸出訊息。預設的等級以及其對應的數值如下表:
等級 | 數值 | 輸出函數 |
---|---|---|
CRITICAL | 50 | logging.critical |
ERROR | 40 | logging.error |
WARNING | 30 | logging.warning |
INFO | 20 | logging.info |
DEBUG | 10 | logging.debug |
設定logging等級最簡單的使用方式是藉由logging.basicConfig函數設定輸出的格式以及等級:
import logging
logging.basicConfig(level=logging.INFO)
logging.info('This will get logged')
logging.debug('This will not get logged')
輸出 :
INFO:root:This will get logged
其中root為root logger的意思。如果想將訊息同時輸出至不同的檔案或stream中,則需要藉由logging.getLogger函數新增其他的logger。除此之外,logging.basicConfig也可以設定輸出的格式、輸出的檔案等等。相關需求可以參考官方文件。
沒有留言:
張貼留言