logging模塊是Python內置的標準模塊,主要用於輸出運行日誌,能夠設置輸出日誌的等級、日誌保存路徑、日誌文件回滾等;相比print,具有以下優勢:python
1.能夠經過設置不一樣的日誌等級,在release版本中只輸出重要信息,而沒必要顯示大量的調試信息;ide
2.print將全部信息都輸出到標準輸出中,嚴重影響開發者從標準輸出中查看其它數據;logging則能夠由開發者決定將信息輸出到什麼地方,以及怎麼輸函數
3.出問題的時候能夠經過日誌來記錄和回溯執行過程以及數據和定位問題調試
1.建立本身的日誌收集器日誌
import logging from logging import handlers logger = logging.getLogger("mypython")
2.設置日誌級別
日誌級別有以下幾種:
CRITICAL, FATAL,ERROR, WARNING,WARNING, INFO,DEBUG, NOTSET,code
logger.setLevel(logging.DEBUG)
3.設置日誌輸出格式,Formatter函數可根據我的須要添加想要的字段orm
""" %(asctime)s %(name)s %(levelno)s %(levelname)s %(filename)s %(message)s""" fmt = "%(asctime)s %(name)s %(levelno)s %(levelname)s %(filename)s %(message)s" formatter = logging.Formatter(fmt)
4.建立一個日誌輸出渠道,方式有兩種
方法一:控制檯輸出utf-8
handle1 = logging.StreamHandler() handle1.setFormatter(formatter) handle1.setLevel(logging.INFO) #定製輸出渠道本身的日誌級別,但不能低於日誌收集器的級別,好比 日誌收集器的級別是ERROR,此時渠道本身的的INFO級別日誌就沒意義
方法二:輸出到文件開發
handle2 = logging.FileHandler("logging.log", encoding="utf-8") handle2.setFormatter(formatter)
5.將輸出渠道添加到日誌收集器中get
logger.addHandler(handle1) logger.addHandler(handle2) logger.info("11111")