Support `fingerprint` through logging handler

Fixes GH-661
This commit is contained in:
Matt Robenolt 2015-09-18 15:55:02 -07:00
parent af2e462621
commit d3b2fb63a4
2 changed files with 25 additions and 1 deletions

View File

@ -116,7 +116,7 @@ class SentryHandler(logging.Handler, object):
continue
if k.startswith('_'):
continue
if '.' not in k and k not in ('culprit', 'server_name'):
if '.' not in k and k not in ('culprit', 'server_name', 'fingerprint'):
extra[k] = v
else:
data[k] = v

View File

@ -215,6 +215,30 @@ class LoggingIntegrationTest(TestCase):
event = self.client.events.pop(0)
assert event['tags'] == {'foo': 'bar'}
def test_fingerprint_on_event(self):
record = self.make_record('Message', extra={'fingerprint': ['foo']})
self.handler.emit(record)
self.assertEqual(len(self.client.events), 1)
event = self.client.events.pop(0)
assert event['fingerprint'] == ['foo']
def test_culprit_on_event(self):
record = self.make_record('Message', extra={'culprit': 'foo'})
self.handler.emit(record)
self.assertEqual(len(self.client.events), 1)
event = self.client.events.pop(0)
assert event['culprit'] == 'foo'
def test_server_name_on_event(self):
record = self.make_record('Message', extra={'server_name': 'foo'})
self.handler.emit(record)
self.assertEqual(len(self.client.events), 1)
event = self.client.events.pop(0)
assert event['server_name'] == 'foo'
class LoggingHandlerTest(TestCase):
def test_client_arg(self):