我正在开发基于Flask应用程序的Web应用程序(https://github.com/opensourcehacker/sevabot),该应用程序具有基于HTTP的API服务。
许多开发人员正在使用和扩展API,我想添加一个功能,将Flask的HTTP请求打印到Python日志输出,这样您就可以看到原始HTTP有效负载,源IP和头文件。
Flask提供哪种挂钩,这种HTTP请求转储最容易实现
是否有任何现有的解决方案和最佳实践可供学习?
答案 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('...')