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))
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"])
# First check if the filter works as intended with non-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
# First check if the filter works as intended with debug messages
record = self._make_record("eggs", level=logging.DEBUG)
self.assertTrue(logfilter.filter(record))
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))

View File

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