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)

image

posted @ 2024-09-28 13:07  那个白熊  阅读(4)  评论(0编辑  收藏  举报