之前在簡書中看了一篇關於日志功能的文檔,供大家參考: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級{:的日志')