之前在简书中看了一篇关于日志功能的文档,供大家参考: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级{:的日志')