前言
程序和脚本往往是无人值守运行的,一旦发生问题,就需要我们去追溯当时的情况来定位问题的原因。
这便需要我们在程序和脚本中引入日志的功能。
相比于print信息,使用logging日志有以下优点
可以记录输出日志的时间、文件、函数以及代码行,甚至线程名和线程号
可以分等级记录日志(调试级、信息级、警告级、错误级、严重错误级)
即可以实时输出到屏幕,也可以输出到文件
基本使用
Python中使用自带的logging模块输出日志,logging模块的主要组件为logger日志记录器,如下图。
基本使用如下
import logging
logging.debug('调试级别的日志')
logging.info('信息级别的日志')
logging.warning('警告级别的日志') # 或logging.warn('警告级别的日志')
logging.error('错误级别的日志')
logging.critical('严重错误级别的日志')
try:
1/0
except Exception as ex:
logging.exception(ex) # 错误级别的日志,显示多行回溯信息
运行结果为
WARNING:root:警告级别的日志
ERROR:root:错误级别的日志
CRITICAL:root:严重错误级别的日志
ERROR:root:division by zero
Traceback (most recent call last):
File "", line 9, in
1/0
ZeroDivisionError: division by zero
发现只显示warning、error、critical的日志,这是因为logging中的默认日志记录器(root logger)的level级别是logging.WARNING,即默认只显示警告级别以上的日志。
修改日志等级
我们可以使用logging.basicConfig来修改root logger的设置。
import logging
logging.basicConfig(lev