如何在守护进程化的uwsgi中收集stderr的错误信息?

6 投票
1 回答
3273 浏览
提问于 2025-04-18 17:35

我用 --daemonzie=~/uwsgi.log 来运行我的 uwsgi。

我在用 Flask 框架。在我的 Flask 应用里,如果我把一些信息打印到 stdin,这些信息会出现在 uwsgi.log 里。如果我打印到 stderr,那么 uwsgi.log 就不会显示这些信息。我该怎么做才能让 uwsgi 收集来自 stderr 的信息呢?

主要的问题是,我无法让 uwsgi.log 收集到我在 Flask 应用中捕获异常后的错误追踪信息。

1 个回答

8

Flask会捕捉你的错误,所以你需要在配置中设置一下 PROPAGATE_EXCEPTIONS

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

@application.route('/')
def hello_world():
    return 'Hello World!'

你可以通过

  --logto /var/log/uwsgi/app.log

来设置Uwsgi的日志记录,或者如果你想把 stdoutstderr 分开,可以使用 logto2 这个选项。

另外,你还可以设置日志记录插件(比如转发到系统日志等),不过这些插件需要在uwsgi中编译才能使用。

撰写回答