Python - 日志记录与级别
我在用Python的一个模块logging
来生成日志文件和在控制台打印信息。我设置了我的脚本,让它记录所有错误级别的信息,但不包括DEBUG级别的内容,记录到文件里。不过,我在设置控制台打印的部分遇到了一些麻烦。我希望在控制台上显示INFO
级别和更低的级别,而不是像setLevel
那样显示更高的级别。有没有办法用内联代码来实现这个呢?
1 个回答
4
我不太确定你说的“内联代码”具体指什么,但你可以通过使用过滤器来实现这个功能。
class InfoAndLower(logging.Filter):
def filter(self, record):
return record.levelno <= logging.INFO
然后把这个过滤器实例连接到你的控制台处理器上。
h = logging.StreamHandler(sys.stdout)
h.addFilter(InfoAndLower())
在Python 3.2及以后的版本中,你不需要创建一个类,使用一个可调用的对象就可以了:
h.addFilter(lambda record: record.levelno <= logging.INFO)