Skip to content

Instantly share code, notes, and snippets.

@mariocj89
Created February 10, 2018 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mariocj89/7d873fc84bf8723f5e2740adbeccde12 to your computer and use it in GitHub Desktop.
Save mariocj89/7d873fc84bf8723f5e2740adbeccde12 to your computer and use it in GitHub Desktop.
Sample max level filter
import logging

class MaxLevelFilter(logging.Filter):
    def __init__(self, max_level=None):
        self.max = logging._checkLevel(max_level)

    def filter(self, record):
        return record.levelno <= self.max


import sys
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
stdout = logging.StreamHandler(sys.stdout)
stdout.setLevel("DEBUG")
stdout.addFilter(MaxLevelFilter("INFO"))
stderr = logging.StreamHandler(sys.stderr)
stderr.setLevel("WARNING")
logger.addHandler(stdout)
logger.addHandler(stderr)

logger.info('INFO')
logger.error('ERROR')
$ python3 max_filter.py
INFO
ERROR
$ python3 max_filter.py > /dev/null
ERROR
$ python3 max_filter.py 2> /dev/null
INFO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment