如何让 UWSGI 以正确的级别记录 Flask 日志消息?

How can I get UWSGI to log Flask log messages at the correct level?

我在 systemd 下有一个 uwsgi 服务 运行。它似乎将从其托管的 Flask 应用程序收到的所有内容记录为 INFO 级别,而不是它应该记录的任何级别。

在我的 Python 代码中,我有一个名为 app 的 Flask 应用程序。我叫:

app.logger.error('TESTING LOGGING')

当我使用 journalctl -u uwsgi -p err 检查我的日志时,我没有看到我记录的消息。当我使用 journalctl -u uwsgi -p info 时,我会使用

我没有使用 uwsgi 的 systemd_logger 插件,但它看起来不会解决这个问题,因为它也总是在 INFO等级:https://github.com/unbit/uwsgi/blob/3149df02ed443131c54ea6afb29fcbb0ed4d1139/plugins/systemd_logger/systemd_logger.c#L13

UWSGI 不会将这些消息记录到正确的级别,但我能够通过使用 Python systemd 包直接从 Flask 中完成。

import logging
from systemd import journal

logger = logging.getLogger(__name__)
journaldHandler = journal.JournalHandler()
logger.addHandler(journaldHandler)

logger.error('TESTING LOGGING')

https://pypi.org/project/systemd/