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