2011-05-21 124 views
0

我使用python模块logging来生成日志文件和控制台打印。 我设置了我的脚本来记录所有错误级别,没有DEBUG文件。 但我设置处理控制台打印的麻烦。在控制台上,我想要显示INFO以下的级别,而不是像setLevel这样做。有没有办法用内联的代码做到这一点?Python - 日志记录和级别

+0

http://stackoverflow.com/questions/1383254/logging-streamhandler-标准流可能会帮助完整。 – 2011-05-21 08:05:23

回答

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)