NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)