Skip to content

Commit 0891a87

Browse files
ezarownyrokob
authored andcommitted
Install Twisted Observer during init
1 parent 87ba05b commit 0891a87

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
@@ -91,6 +91,7 @@ def wrap(*args, **kwargs):
9191
return func(*args, **kwargs)
9292
return wrap
9393

94+
9495
try:
9596
from tornado.gen import coroutine as tornado_coroutine
9697
from tornado.httpclient import AsyncHTTPClient as TornadoAsyncHTTPClient
@@ -102,7 +103,7 @@ def wrap(*args, **kwargs):
102103
import treq
103104
from twisted.python import log as twisted_log
104105

105-
def log_handler(event):
106+
def twisted_log_observer(event):
106107
"""
107108
Default uncaught error handler
108109
"""
@@ -119,11 +120,6 @@ def log_handler(event):
119120
report_exc_info((err.type, err.value, err.getTracebackObject()))
120121
except:
121122
log.exception('Error while reporting to Rollbar')
122-
123-
# Add Rollbar as a log handler which will report uncaught errors
124-
twisted_log.addObserver(log_handler)
125-
126-
127123
except ImportError:
128124
treq = None
129125

@@ -302,8 +298,12 @@ def init(access_token, environment='production', **kw):
302298
if SETTINGS.get('allow_logging_basic_config'):
303299
logging.basicConfig()
304300

305-
if SETTINGS.get('handler') == 'agent':
301+
handler = SETTINGS.get('handler')
302+
if handler == 'agent':
306303
agent_log = _create_agent_log()
304+
elif handler == 'twisted' and treq:
305+
# Add Rollbar as a Twisted Observer which will report uncaught errors
306+
twisted_log.addObserver(twisted_log_observer)
307307

308308
# We will perform these transforms in order:
309309
# 1. Serialize the payload to be all python built-in objects
@@ -448,7 +448,7 @@ def send_payload(payload, access_token):
448448
_send_payload_appengine(payload_str, access_token)
449449
elif handler == 'twisted':
450450
if treq is None:
451-
log.error('Unable to find Treq')
451+
log.error('treq and twisted are required for the twisted handler')
452452
return
453453
_send_payload_twisted(payload_str, access_token)
454454
else:
@@ -1193,7 +1193,7 @@ def _build_server_data():
11931193
# argv does not always exist in embedded python environments
11941194
argv = getattr(sys, 'argv', None)
11951195
if argv:
1196-
server_data['argv'] = argv
1196+
server_data['argv'] = argv
11971197

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

0 commit comments

Comments
 (0)