1、logging模塊使用方法
logger提供了應用程序可以直接使用的接口;
handler將(logger創建的)日誌記錄發送到合適的目的輸出;
filter提供了細度設備來決定輸出哪條日誌記錄;
formatter決定日誌記錄的最終輸出格式。
import logging
logger = logging.getLogger("test") # 定義對應的程序模塊名name,默認是root
logger.setLevel(logging.DEBUG) # 指定最低的日誌級別 critical > error > warning > info > debug
consol_haddler = logging.StreamHandler() # 日誌輸出到屏幕控制檯
consol_haddler.setLevel(logging.INFO) # 設置日誌等級
# 這裏進行判斷,如果logger.handlers列表爲空,則添加,否則,直接去寫日誌,解決重複打印的問題
if not logger.handlers:
file_haddler = logging.FileHandler("log.txt",encoding="utf-8") # 向文件log.txt輸出日誌信息,encoding="utf-8",防止輸出log文件中文亂碼
file_haddler.setLevel(logging.WARNING) # 設置輸出到文件最低日誌級別
formatter = logging.Formatter("%(asctime)s %(name)s- %(levelname)s - %(message)s")
# %(asctime)s 字符串形式的當前時間。默認格式是 “2003-07-08 16:49:45,896”。逗號後面的是毫秒
# %(name)s 自定義的模塊名
consol_haddler.setFormatter(formatter) # 選擇一個輸出格式,可以定義多個輸出格式
file_haddler.setFormatter(formatter)
logger.addHandler(file_haddler) # 增加指定的handler
logger.addHandler(consol_haddler)
logger.debug("test1")
logger.info("test2")
logger.warning("test3")
logger.error("test4")
控制檯輸出結果如下圖:
log.txt輸入結果如下圖:
這樣寫大家有沒有發現debug及info級別的log在控制檯顯示出來也是紅色,並沒有區分。正常情況下應該顯示不同顏色,比如debug--白色,info--綠色,waining--紅色等等。請看我的下一篇博客。傳送門:https://blog.csdn.net/xugexuge/article/details/87916020