我使用uwsgi运行一个用烧瓶写的小服务。
我这样推出:
flask/bin/uwsgi --http :9090 --master --pidfile /tmp/KVAutobus-uwsgi.pid --processes 30 --threads 2 --wsgi-file app.py --callable app --stats :9191 --daemonize /opt/logs/KVAutobus-uwsgi.log
它似乎有效,但我在请求期间遇到了500错误,我想看到烧瓶应用程序产生的追溯但我无法找到它。我需要不同的日志选项吗?
以下是500错误后日志文件中的所有内容:
>tail /opt/logs/KVAutobus-uwsgi.log
*** Stats server enabled on :9191 fd: 135 ***
spawned uWSGI http 1 (pid: 20124)
[pid: 20060|app: 0|req: 1/1] 10.36.100.18 () {34 vars in 709 bytes} [Tue Jun 30 14:29:57 2015] DELETE /kvautobus/api/clear_cache_range/MDAwMDAwMDA1NTA0MDAwMDAwMDQwOTYwMDAwMDAwMTczMDU2/MDAwMDAwMDA1NTA0MDAwMDAwMDQwOTYwMDAwMDAwMTg0NDQ4/ => generated 291 bytes in 30023 msecs (HTTP/1.1 500) 2 headers in 84 bytes (1 switches on core 0)
答案 0 :(得分:6)
好的,@ ipinak走在了正确的轨道上。看起来Flask正在吞噬错误而不是传播错误。
这是修复它的the answer I found。如果链接断开,它基本上是在您的应用中设置的:
from flask import Flask
application = Flask(__name__)
application.config['PROPAGATE_EXCEPTIONS'] = True
答案 1 :(得分:1)
我认为你不能那样做,你需要在你的应用程序中添加日志记录(这就是我所做的)。以下是您可以记录https://uwsgi-docs.readthedocs.org/en/latest/LogFormat.html?highlight=log的数据的信息。另外,我建议您删除--daemonize
选项,而不是使用supervisord来进行流程控制。