2020年3月19日 星期四

Django 基礎Log 範例教學


在開發小程式的時候,

使用 print() 來除錯,

若專案越來越龐大的話,

當今天要正式 release 就得去移除這些 print() 訊息,

Python 內建提供了 logging 模組來解決這個問題,

這就是今天的主題:

Django 基礎Log 範例教學

Logging 將 Log 分為六個等級,

logging.NOTSET    ,代表數值:   0 ,無呼叫函式
logging.DEBUG      ,代表數值:  10,以 logging.debug() 呼叫       (除錯等級)
logging.INFO          ,代表數值:  20,以 logging.info() 呼叫          (訊息等級)
logging.WARNING ,代表數值:  30,以 logging.warning() 呼叫   (警告等級)
logging.ERROR       ,代表數值: 40,以 logging.error() 呼叫         (錯誤等級)
logging.CRITICAL  ,代表數值: 50,以 logging.critical() 呼叫      (嚴重錯誤等級)

最基本的使用方法也很簡單,

首先透過 basicConfig 設定要使用的Log:

level   :設定目前Log使用的等級
format:設定在Log 中顯示的格式
  • %(asctime)s     顯示時間格式
  • %(levelname)s 顯示目前的等級
  • %(message)s    顯示的訊息
filename 設定 Log的絕對路徑



logging.basicConfig(level=logging.DEBUG,                     format='%(asctime)s - %(levelname)s : %(message)s',                     filename = BASE_DIR+'/logs/log.txt')


再來就是透過呼叫與除錯等級相應的函式設定顯示的訊息:


logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical message")


將要顯示的範例訊息加到 helloworld 中


接著到專案資料夾中,

新增一個目錄名為 logs

並透過

chown -R [username]:www-data logs
chmod -R 764 logs

更改資料夾權限,

執行 helloworld 就能夠找到 log.txt 中秀出指定的訊息


其實 Logging 模組還有許多其他方法可以使用,

不過今天是基礎教學,

教大家最簡單的方式來 Coding ,

進階用法的話,

就請待下回分解。











沒有留言: