uwsgi - 无法在日志文件中看到回溯

Gre*_*reg 3 python flask uwsgi

我正在使用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
Run Code Online (Sandbox Code Playgroud)

它似乎工作,但我只是在请求期间遇到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)
Run Code Online (Sandbox Code Playgroud)

Gre*_*reg 6

好的,@ ipinak走在了正确的轨道上.看起来Flask正在吞噬错误而不是传播错误.

这是我发现修复它的答案.如果链接断开,它基本上是在您的应用中设置:

from flask import Flask
application = Flask(__name__)
application.config['PROPAGATE_EXCEPTIONS'] = True
Run Code Online (Sandbox Code Playgroud)


ipi*_*nak 1

我认为你不能在那里做到这一点,你需要在你的应用程序中添加日志记录(这就是我所做的)。以下是有关您可以记录的数据的信息https://uwsgi-docs.readthedocs.org/en/latest/LogFormat.html?highlight=log。另外,我建议您删除--daemonize选项并使用supervisord来进行过程控制。