0

I use python module logging to generate log files and console print. I set 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?

1

1 Answer 1

4

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)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.