我目前正在开发我的第一个Heroku python烧瓶网络应用程序,我正在当地用gunicorn和工头进行测试。当我尝试使用url参数中的json编码进行GET请求时,我不断收到400个错误的请求响应。但是,我无法弄清楚出了什么问题。服务器日志不会打印任何内容。没有记录任何错误,也没有任何关于收到请求的消息。
如何获取有关出错的更多信息,我该怎么办?我是否需要配置其中一个工具来更详细地记录错误?任何帮助将不胜感激。感谢。
(顺便提一下app.debug = True
)
答案 0 :(得分:0)
好吧,我不确定这是否是导致我的问题,但我意识到我作为URL参数传递的JSON很长(在URL编码之前大约8000个字符)。另一个SO问题表明,典型的限制大约是2000个字符。我现在通过使用POST请求解决了我的问题,但我仍然想知道如果有人有任何提示,如何从网络应用程序获取更详细的调试信息。
答案 1 :(得分:-1)
您使用的是蓝图吗?根据我的经验,Blueprints可以防止任何输出显示在控制台中。这是一个简单的日志记录功能,我用它来解决这个问题:
import logging
log = logging.getLogger(__name__)
logging.basicConfig(format="[%(asctime)s] %(levelname)s:%(message)s")
log.setLevel(logging.DEBUG)
def logging_fun(method, remote_addr):
log.info('HTTP %s request from %s' % (method, remote_addr))
@blueprint.route('/servers', methods=['GET'])
def list_servers():
"""Gives a list of all registered servers."""
logging_fun(request.method, request.remote_addr)
如果你需要查看URL参数是否存在,你也可以让它迭代并打印request.args
。