9

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

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

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

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

4

1 回答 1

10

Flask在 at 提供了一个标准记录器,这个 gistcurrent_app.logger中有一个示例配置,但如果你想记录每个请求,你可以将记录调用集中在 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('...')
于 2013-02-04T13:39:28.250 回答