开发者

Python - Logging and levels

I use python module logging to generate log files and console print. I se开发者_运维百科t up my script to log all errors levels, without DEBUG to file. But i have trouble with set up handler for console printing. On console i want to display level INFO and below, not up like setLevel doing. Is any way to do this with inline code?


I'm not sure exactly what you mean by "inline code", but you can achieve this using Filters.

class InfoAndLower(logging.Filter):
    def filter(self, record):
        return record.levelno <= logging.INFO

and then attach a filter instance to your console handler.

h = logging.StreamHandler(sys.stdout)
h.addFilter(InfoAndLower())

In Python 3.2 and later, you don't need to create a class - a callable will do:

h.addFilter(lambda record: record.levelno <= logging.INFO)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜