log日志
- 开发过程中出现bug是不可避免的,当我们遇到bug时该如何解决呢?
- python中有一个logging模块可以完成我们在使用过程中的记录,在debug时用它往往事半功倍
1.日志级别
日志一共分成5个级别,从低到高依次为
- DEBUG
- INFO
- WARNING
- ERROR
- CRITICAL
- 这5个等级,默认的是WARNING,当在WARNING或之上时才被跟踪
2.日志输出
- 有两种方式记录跟踪,一种输出控制台,另一种是记录到文件中,如日志文件。
2.1将日志输出到控制台
import logging
logging.basicConfig(level=logging.INFO,
format='%(asctime)s- %(filename)s[line:%(lineno)d] - %(levelname)s:%(message)s')
logger.debug('这是debug')
logger.info('这是info')
- 说明
- 通过logging.basicConfig函数对日志的输出格式及方式做相关配置
- 注意
- 只要用过一次log功能再次设置格式时将失效,实际开发中格式肯定不会经常变化,所有刚才需要设定好格式
2.2将日志输出到文件中
import logging
logging.basicConfig(level=logging.INFO,
filename='./log.txt',
filemode='w',
format='%(asctime)s- %(filename)s[line:%(lineno)d] - %(levelname)s:%(message)s')
logger.debug('这是debug')
logger.info('这是info')
2.3将日志输出到控制台和文件中
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logfile = './log.txt'
fh = logging.FileHanfler(lofile,mode='a')
fh.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING)
formatter = logging.Formatter(%(asctime)s- %(filename)s[line:%(lineno)d] - %(levelname)s:%(message)s)
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)
logger.debug('这是debug')
logger.info('这是info')