2018年10月5日 星期五

logging 日誌

logging 日誌

logging

logging是用來記錄(logging)事件的模組。logging的主要用途是把希望印出的訊息依據嚴重程度切分數個等級,並將格式化後的訊息輸出至檔案或標準輸出、標準錯誤。由於logging將輸出訊息切分得很細緻,且具有很好的靈活度,因此在程式正式上線時常用來取代printstdoutstderr等輸出方式。

承上段,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

其中rootroot logger的意思。如果想將訊息同時輸出至不同的檔案或stream中,則需要藉由logging.getLogger函數新增其他的logger。除此之外,logging.basicConfig也可以設定輸出的格式、輸出的檔案等等。相關需求可以參考官方文件。

Reference

  1. Python documentation
  2. Real python

沒有留言:

張貼留言