5

我正在尝试通过覆盖该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):

而不是我的自定义消息。我究竟做错了什么?

4

1 回答 1

7

好吧,首先,_handle_request_exception方法是 in 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.

于 2012-09-01T21:47:29.683 回答