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")