一、关于日志的等级

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----日志')

运行结果:

注意点:收集器等级为收集日志的等级,输出渠道等级为输出日志的等级,可以不相同,更灵活、更自由的控制日志的收集和输出