响应结果获取不到

来源:14-1 阿里云(centos)的生产环境部署-1

qq_莫别莫别_03693995

2019-03-11

老师,我写了个中间件把每次的请求和返回值都记录下来,但是我debug看了下,不知道如何可以拿到response

写回答

2回答

qq_莫别莫别_03693995

提问者

2019-03-15

class BaseHandler(RequestHandler):
    def initialize(self):
        self.middleware = [log_middle_ware.LogMiddleWare()]

    def prepare(self):
        for middleware in self.middleware:
            middleware.process_request(self)

    def on_finish(self):
        for middleware in reversed(self.middleware):
            middleware.process_response(self)
class LogMiddleWare(MiddleWare):
    def __init__(self):
        super().__init__()
        self.start_time = None
        self.end_time = None

    def process_request(self, handler):
        self.start_time = time.time()

    def process_response(self, handler):
        """
        日志中间件
        """
        request = handler.request
        method = request.method  # 请求方式
        api = request.path  # api地址
        self.end_time = time.time()  # 请求结束时间
        now = datetime.datetime.now()
        data = {
            'api': api,
            'method': method,
            'ip': ip,
            'start_time': self.start_time,
            'end_time': self.end_time,
            'now': datetime_to_str(now)
        }
        data = msgpack.dumps(data)
        log_save.delay(data)

想在process_response获取到返回值

0
1
bobby
你可以覆盖finish方法,在里面添加你的逻辑
2019-03-17
共1条回复

bobby

2019-03-13

你的代码截图我看看?

0
0

Tornado从入门到进阶 打造支持高并发的技术论坛

异步IO并发编程/Form,ORM/aiomysql、peewee-async/epoll

593 学习 · 350 问题

查看课程