From db54baf29ac03ead734f6fe523c196eb8993b25a Mon Sep 17 00:00:00 2001 From: Andre Eriksson Date: Tue, 1 Oct 2013 10:29:35 +0200 Subject: [PATCH] Don't ignore records for all modules starting with "raven" --- raven/handlers/logging.py | 7 ++++--- tests/handlers/logging/tests.py | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/raven/handlers/logging.py b/raven/handlers/logging.py index 3f2e0ee10..b8729e83d 100644 --- a/raven/handlers/logging.py +++ b/raven/handlers/logging.py @@ -47,9 +47,10 @@ def __init__(self, *args, **kwargs): logging.Handler.__init__(self, level=kwargs.get('level', logging.NOTSET)) def can_record(self, record): - if record.name.startswith(('sentry.errors', 'raven')): - return False - return True + return not ( + record.name == 'raven' or + record.name.startswith(('sentry.errors', 'raven.')) + ) def emit(self, record): try: diff --git a/tests/handlers/logging/tests.py b/tests/handlers/logging/tests.py index 248cdcc69..90be5bafa 100644 --- a/tests/handlers/logging/tests.py +++ b/tests/handlers/logging/tests.py @@ -26,8 +26,8 @@ def setUp(self): self.client = TempStoreClient(include_paths=['tests', 'raven']) self.handler = SentryHandler(self.client) - def make_record(self, msg, args=(), level=logging.INFO, extra=None, exc_info=None): - record = logging.LogRecord('root', level, __file__, 27, msg, args, exc_info, 'make_record') + def make_record(self, msg, args=(), level=logging.INFO, extra=None, exc_info=None, name='root', pathname=__file__): + record = logging.LogRecord(name, level, pathname, 27, msg, args, exc_info, 'make_record') if extra: for key, value in six.iteritems(extra): record.__dict__[key] = value @@ -49,6 +49,19 @@ def test_logger_basic(self): self.assertEqual(msg['message'], 'This is a test error') self.assertEqual(msg['params'], ()) + def test_can_record(self): + tests = [ + ("raven", False), + ("raven.foo", False), + ("sentry.errors", False), + ("sentry.errors.foo", False), + ("raven_utils", True), + ] + + for test in tests: + record = self.make_record("Test", name=test[0]) + self.assertEqual(self.handler.can_record(record), test[1]) + def test_logger_extra_data(self): record = self.make_record('This is a test error', extra={'data': { 'url': 'http://example.com',