之前在簡書中看了一篇關于日志功能的文檔,供大家參考:https://www.jianshu.com/p/62f7b49b41e7
Python通過logging子產品提供日志功能,是以直接導入即可
import logging
1.定義日志收集器,指定收集器的名稱,傳回logging對象
case_logger = logging.getLogger('case')
2.指定日志收集器的日志等級,NOTEST(0) DEBUG(10) INFO(20) WARNING(30) ERROR(40) CRITICAL(50)
注意:日志的等級和收集器的等級,隻能收集指定日志等級及以上的等級
case_logger.setLevel('DEBUG')
3.定義日志輸出管道,可以同時定義多個:console 控制台,日志檔案,日志伺服器syslog,資料庫
#輸出到控制台
console_handle =logging.StreamHandler()#輸出到日志檔案
file_handle = logging.FileHandler('case.log', encoding='utf-8')
4.指定日志輸出管道的日志等級
注意:收集器日志等級<=輸入管道等級,即設定的輸出管道等級為INFO,那麼收集器日志等級隻能是NOTEST(0) DEBUG(10) INFO(20)
console_handle.setLevel('ERROR')
file_handle.setLevel('INFO')
5.定義日志顯示格式,具體的日志顯示格式可以參考官方文檔:https://docs.python.org/3/library/logging.html
simple_formatter = logging.Formatter(‘%%(asctime)s:%%(name)s:%%(levelname)s’)
verbose_formatter= logging.Formatter('%%(asctime)s:%%(name)s:%%(levelname)s:%%(message)s')#指定終端顯示簡單結構日志
console_handle.setFormatter(simple_formatter)#指定日志檔案顯示複雜結構日志
file_handle.setFormatter(verbose_formatter)
6.将日志收集器和輸出管道進行對接
case_logger.addHandler(console_handle)
case_logger.addHandler(file_handle)
7.測試
case_logger=HandleLog().get_logger()
case_logger.debug('這個是debug級别的日志')
case_logger.info('這個是info級别的日志')
case_logger.warning('這個是warning級别的日志')
case_logger.error('這個是error級别的日志')
case_logger.critical('這個是critical級{:的日志')