【问题标题】:uwsgi - can't see traceback in log fileuwsgi - 在日志文件中看不到回溯
【发布时间】:2015-09-17 16:57:24
【问题描述】:

我正在使用 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)

【问题讨论】:

    标签: python flask uwsgi


    【解决方案1】:

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

    这是修复它的the answer I found。如果链接断开,它基本上是在您的应用中设置:

    from flask import Flask
    application = Flask(__name__)
    application.config['PROPAGATE_EXCEPTIONS'] = True
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 所以我的应用程序需要一种方法来捕获所有错误并将回溯写入标准输出?是uwsgi无法捕获写入stderr的东西的问题吗?
      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 2018-06-20
      • 2021-07-09
      • 1970-01-01
      • 2020-05-24
      • 2014-07-21
      • 2020-06-30
      相关资源
      最近更新 更多