@@ -84,6 +84,7 @@ def wrap(*args, **kwargs):
8484 return func (* args , ** kwargs )
8585 return wrap
8686
87+
8788try :
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-
120116except 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