我正在尝试使用覆盖tornado.web.Application._handle_request_exception
方法来实现自定义未处理请求异常日志记录:
def _handle_request_exception(self, e):
logging.error('error') # Just for test.
但是我看到了相同的日志输出,如:
2012-09-01 03:35:09,947 [7399] root ERROR: Uncaught exception GET / (127.0.0.1)
HTTPRequest(...)
Traceback (most recent call last):
而不是我的自定义消息。我做错了什么?
答案 0 :(得分:7)
首先,_handle_request_exception
方法位于RequestHandler
,而不是Application
。
其次,您不能使用主命名空间中的新定义覆盖绑定方法:
def _handle_request_exception(self, e):
logging.error('error')
您需要继承RequestHandler
类:
class BaseHandler(tornado.web.RequestHandler):
def _handle_request_exception(self, e):
logging.error('error')
然后,您的所有处理程序都应继承自BaseHandler
。