Skip to content

Commit 8b6cb76

Browse files
committed
Install Twisted Observer during init
1 parent 0baeaaa commit 8b6cb76

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

rollbar/__init__.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ def wrap(*args, **kwargs):
8484
return func(*args, **kwargs)
8585
return wrap
8686

87+
8788
try:
8889
from tornado.gen import coroutine as tornado_coroutine
8990
from tornado.httpclient import AsyncHTTPClient as TornadoAsyncHTTPClient
@@ -95,7 +96,7 @@ def wrap(*args, **kwargs):
9596
import treq
9697
from twisted.python import log as twisted_log
9798

98-
def log_handler(event):
99+
def twisted_log_observer(event):
99100
"""
100101
Default uncaught error handler
101102
"""
@@ -112,11 +113,6 @@ def log_handler(event):
112113
report_exc_info((err.type, err.value, err.getTracebackObject()))
113114
except:
114115
log.exception('Error while reporting to Rollbar')
115-
116-
# Add Rollbar as a log handler which will report uncaught errors
117-
twisted_log.addObserver(log_handler)
118-
119-
120116
except ImportError:
121117
treq = None
122118

@@ -290,8 +286,12 @@ def init(access_token, environment='production', **kw):
290286
if SETTINGS.get('allow_logging_basic_config'):
291287
logging.basicConfig()
292288

293-
if SETTINGS.get('handler') == 'agent':
289+
handler = SETTINGS.get('handler')
290+
if handler == 'agent':
294291
agent_log = _create_agent_log()
292+
elif handler == 'twisted' and treq:
293+
# Add Rollbar as a Twisted Observer which will report uncaught errors
294+
twisted_log.addObserver(twisted_log_observer)
295295

296296
# We will perform these transforms in order:
297297
# 1. Serialize the payload to be all python built-in objects
@@ -402,7 +402,7 @@ def send_payload(payload, access_token):
402402
_send_payload_appengine(payload, access_token)
403403
elif handler == 'twisted':
404404
if treq is None:
405-
log.error('Unable to find Treq')
405+
log.error('treq and twisted are required for the twisted handler')
406406
return
407407
_send_payload_twisted(payload, access_token)
408408
else:
@@ -1067,7 +1067,7 @@ def _build_server_data():
10671067
# argv does not always exist in embedded python environments
10681068
argv = getattr(sys, 'argv', None)
10691069
if argv:
1070-
server_data['argv'] = argv
1070+
server_data['argv'] = argv
10711071

10721072
for key in ['branch', 'root']:
10731073
if SETTINGS.get(key):

0 commit comments

Comments
 (0)