一、关于日志的等级
1、debug:调试日志
2、info:记录程序正常执行的关键信息
3、warning:输入警告信息
4、error:记录代码的错误信息(代码运行出错,但是程序还可以继续执行)
5、critical:记录代码更为严重的错误(程序运行崩溃,无法继续运行)
二、运行日志的5个等级
logging.debug("这个是木森输出的debug级别的日志")logging.info("这个是木森输出的debug级别的日志")logging.warning("这个是木森输出的debug级别的日志")logging.error("这个是木森输出的debug级别的日志")logging.critical("这个是木森输出的debug级别的日志")
运行结果:WARNING:root:这个是木森输出的debug级别的日志
ERROR:root:这个是木森输出的debug级别的日志
CRITICAL:root:这个是木森输出的debug级别的日志
解释:控制台默认只输出warning及以上级别的日志
一、日志收集器
1、logging模块默认的日志收集器是root(一般不用,因为格式不太好)
2、自定义日志收集器
import logging# 定义一个日志收集器,名字叫“TC_log”my_log = logging.getLogger('TC_log')
3、设置收集器收集日志的等级(等级必须全部大写)
# 设置收集器,收集日志的等级my_log.setLevel('DEBUG') # 等级必须全部大写
四、日志输出渠道
第一种:输出到控制台
1、定义输出到控制台的日志输出渠道
# 创建一个输出到控制台的输出渠道sh = logging.StreamHandler()
2、设置输出到控制台的输出日志等级
# 设置输出到控制台的输出等级sh.setLevel('DEBUG')
3、将输出渠道添加到收集器中
# 将输出渠道添加到收集器中my_log.addHandler(sh)
4、完整步骤的代码
import logging# 第一步:创建日志收集器# 1、定义一个日志收集器,名字叫“TC_log”my_log = logging.getLogger('TC_log')# 2、设置收集器收集日志的等级my_log.setLevel('DEBUG')# 第二步:创建日志输出渠道# 1、创建一个输出到控制台的输出渠道sh = logging.StreamHandler()# 2、设置输出到控制台的输出等级sh.setLevel('DEBUG')# 第三步:将输出渠道添加到收集器中my_log.addHandler(sh)my_log.debug('----debug----日志')my_log.info('----info----日志')my_log.warning('----warning----日志')my_log.error('----error----日志')my_log.critical('----critical----日志')
运行结果:----debug----日志
----info----日志
----warning----日志
----error----日志
----critical----日志
第二种:输出到文件
1、定义输出到文件的日志输出渠道
# 创建一个输出到控制台的输出渠道
# 参数说明:输出日志文件名、默认追加写入默认、编码格式utf-8fh = logging.FileHandler(filename='tc.log',mode='a',encoding='utf-8')
2、设置输出到文件的输出日志等级
# 设置输出到控制台的输出等级fh.setLevel('DEBUG')
3、将输出渠道添加到收集器中
# 将输出渠道添加到收集器中my_log.addHandler(fh)
4、完整步骤的代码
import logging# 第一步:创建日志收集器# 1、定义一个日志收集器,名字叫“TC_log”my_log = logging.getLogger('TC_log')# 2、设置收集器收集日志的等级my_log.setLevel('DEBUG')# 第二步:创建日志输出渠道# 1、创建一个输出到文件的输出渠道# 参数说明:输出日志文件名、默认追加写入默认、编码格式utf-8fh = logging.FileHandler(filename='tc.log',mode='a',encoding='utf-8')# 2、设置输出到文件的输出等级fh.setLevel('DEBUG')# 第三步:将输出渠道添加到收集器中my_log.addHandler(fh)my_log.debug('----debug----日志')my_log.info('----info----日志')my_log.warning('----warning----日志')my_log.error('----error----日志')my_log.critical('----critical----日志')
运行结果: