使用Flask转储HTTP请求

时间:2013-02-04 13:10:02

标签: python flask

我正在开发基于Flask应用程序的Web应用程序(https://github.com/opensourcehacker/sevabot),该应用程序具有基于HTTP的API服务。

许多开发人员正在使用和扩展API,我想添加一个功能,将Flask的HTTP请求打印到Python日志输出,这样您就可以看到原始HTTP有效负载,源IP和头文件。

  • Flask提供哪种挂钩,这种HTTP请求转储最容易实现

  • 是否有任何现有的解决方案和最佳实践可供学习?

1 个答案:

答案 0 :(得分:10)

Flask在logger处提供标准current_app.logger,在this gist中有一个示例配置,但如果要记录每个请求,可以在before_request处理程序中集中日志记录调用:

from flask import request, current_app

@app.before_request
def log_request():
    if current_app.config.get('LOG_REQUESTS'):
        current_app.logger.debug('whatever')
        # Or if you dont want to use a logger, implement
        # whatever system you prefer here
        # print request.headers
        # open(current_app.config['REQUEST_LOG_FILE'], 'w').write('...')