开发者

Python - Logging and levels

开发者 https://www.devze.com 2023-03-07 22:33 出处:网络
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.

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

精彩评论

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