tornado.py (1633B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\beeline\patch\tornado.py 2 from wrapt import wrap_function_wrapper 3 import beeline 4 import tornado 5 6 def log_request(_log_request, instance, args, kwargs): 7 try: 8 if len(args) == 1: 9 handler = args[0] 10 beeline.send_now({'duration_ms': handler.request.request_time() * 1000.0, 11 'request.method': handler.request.method, 12 'request.remote_addr': handler.request.remote_ip, 13 'request.path': handler.request.uri, 14 'request.query': handler.request.query, 15 'request.host': handler.request.headers.get('Host'), 16 'response.status_code': handler.get_status()}) 17 except Exception: 18 pass 19 finally: 20 _log_request(*args, **kwargs) 21 22 23 def log_exception(_log_exception, instance, args, kwargs): 24 try: 25 if len(args) == 3: 26 value = args[2] 27 beeline.send_now({'request.method': instance.request.method, 28 'request.path': instance.request.uri, 29 'request.remote_addr': instance.request.remote_ip, 30 'request.query': instance.request.query, 31 'request.host': instance.request.get('Host'), 32 'request.error': type(value).__name__, 33 'request.error_detail': beeline.internal.stringify_exception(value)}) 34 except Exception: 35 pass 36 finally: 37 _log_exception(*args, **kwargs) 38 39 40 wrap_function_wrapper('tornado.web', 'Application.log_request', log_request) 41 wrap_function_wrapper('tornado.web', 'RequestHandler.log_exception', log_exception)