python的logging模块
0. 基础用法
0.1 直接使用
引入logging后便可以直接打印日志了,但默认的过滤级别是WARNING,因此只有WARNING及以上的才会被输出。
可以使用 logging.basicConfig(level=logging.INFO)
设置级别为 INFO
。
但这样
import logging
logging.error('这里是错误级别的日志')
# ERROR:root:这里是错误级别的日志
# 其中的root是默认的logger名
0.2 开始使用logger
logger = logging.getLogger(__name__)
logging.basicConfig(filename='myapp.log', level=logging.INFO)
logger.info('xxx')
1. 主从日志模式
logging.getLogger('xxx') # 声明一个logger
logging.getLogger('xxx.yyy') # 会继承上一个logger,内容也会同时往父logger写
2. 同一个logger多个输出流
这可实现日志既在控制台输出,同时又保存到文件,且两个输出可以设置不同的过滤级别和格式。
# 文件输出句柄
fh = logging.FileHandler('spam.log')
fh.setLevel(logging.INFO)
# 控制台输出句柄
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# 设置两个输出流的格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 将两个句柄加添到logger
logger.addHandler(fh)
logger.addHandler(ch)
有了计划记得推动,不要原地踏步。