Python - 记录和级别

时间:2011-05-21 07:25:43

标签: python logging

我使用python模块logging来生成日志文件和控制台打印。 我设置我的脚本来记录所有错误级别,没有DEBUG到文件。 但是我在控制台打印的设置处理程序方面遇到了麻烦。在控制台上我想显示级别INFO低于,而不是像setLevel那样。是否可以使用内联代码执行此操作?

1 个答案:

答案 0 :(得分: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)