summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2016-05-14 01:42:40 +0200
committerArmin Ronacher <armin.ronacher@active-4.com>2016-05-14 01:42:40 +0200
commitc4293b4e0f99e6550446e7e66825984935c6a2c1 (patch)
treed4292bc894d6189fbe0c57e1d276ab3a31243627
parenta4c7f0c36b6ba17f736f76e356102fe214348210 (diff)
downloadraven-bugfix/resiliant-log.tar.gz
Capture down breadcrumb failuresbugfix/resiliant-log
-rw-r--r--raven/breadcrumbs.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/raven/breadcrumbs.py b/raven/breadcrumbs.py
index 2ef13c5..803c9c5 100644
--- a/raven/breadcrumbs.py
+++ b/raven/breadcrumbs.py
@@ -11,6 +11,9 @@ from raven.utils import once
special_logger_handlers = {}
+logger = logging.getLogger('raven')
+
+
class BreadcrumbBuffer(object):
def __init__(self, limit=100):
@@ -39,9 +42,13 @@ class BreadcrumbBuffer(object):
rv = []
for idx, (payload, processor) in enumerate(self.buffer):
if processor is not None:
- processor(payload)
+ try:
+ processor(payload)
+ except Exception:
+ logger.exception('Failed to process breadcrumbs. Ignored')
self.buffer[idx] = (payload, None)
- rv.append(payload)
+ if payload is not None:
+ rv.append(payload)
return rv