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)
精彩评论