Fix logfilter bugs

This commit is contained in:
Florian Bruhin 2014-06-06 16:51:24 +02:00
parent 1dbd84b963
commit 03d754dd86
2 changed files with 10 additions and 10 deletions

View File

@ -79,17 +79,17 @@ class LogFilterTests(TestCase):
self.assertTrue(logfilter.filter(record)) self.assertTrue(logfilter.filter(record))
def test_debug(self): def test_debug(self):
"""Test if debug messages are never filtered.""" """Test if messages more important than debug are never filtered."""
logfilter = log.LogFilter(["eggs"]) logfilter = log.LogFilter(["eggs"])
# First check if the filter works as intended with non-debug messages # First check if the filter works as intended with debug messages
record = self._make_record("eggs", level=logging.INFO)
self.assertTrue(logfilter.filter(record))
record = self._make_record("bacon", level=logging.INFO)
self.assertFalse(logfilter.filter(record))
# Then check if debug is not filtered
record = self._make_record("eggs", level=logging.DEBUG) record = self._make_record("eggs", level=logging.DEBUG)
self.assertTrue(logfilter.filter(record)) self.assertTrue(logfilter.filter(record))
record = self._make_record("bacon", level=logging.DEBUG) record = self._make_record("bacon", level=logging.DEBUG)
self.assertFalse(logfilter.filter(record))
# Then check if info is not filtered
record = self._make_record("eggs", level=logging.INFO)
self.assertTrue(logfilter.filter(record))
record = self._make_record("bacon", level=logging.INFO)
self.assertTrue(logfilter.filter(record)) self.assertTrue(logfilter.filter(record))

View File

@ -83,7 +83,7 @@ def init_log(args):
console, ram = _init_handlers(numeric_level, args.color) console, ram = _init_handlers(numeric_level, args.color)
if args.logfilter is not None and numeric_level <= logging.DEBUG: if args.logfilter is not None and numeric_level <= logging.DEBUG:
console.addFilter(args.logfilter.split(',')) console.addFilter(LogFilter(args.logfilter.split(',')))
root = getLogger() root = getLogger()
root.addHandler(console) root.addHandler(console)
root.addHandler(ram) root.addHandler(ram)
@ -216,8 +216,8 @@ class LogFilter(logging.Filter):
"""Determine if the specified record is to be logged.""" """Determine if the specified record is to be logged."""
if self.names is None: if self.names is None:
return True return True
if record.levelno <= logging.DEBUG: if record.levelno > logging.DEBUG:
# DEBUG or more important, so we won't filter at all # More important than DEBUG, so we won't filter at all
return True return True
for name in self.names: for name in self.names:
if record.name == name: if record.name == name: