Используете Flask и собственное ведение журнала Python?

Проблема с ведением журнала Flask (т. е. app.logger.info(...) и т. д.) заключается в том, что подмодули его не используют, поэтому мне кажется, что единственный способ глобально настроить ведение журнала приложения — через базовый механизм ведения журнала Python: например,

logging.config.fileConfig('config/logging.conf')

Но это не настраивает обработчики Flask по умолчанию, поэтому, например, ведение журнала HTTP не настроено. Итак, я получаю смешанные журналы:

2015-07-28 14:57:47,320 [main.py][INFO] Starting...           # Python log
[2015-07-28 14:58:49] "GET /demo HTTP/1.1" 200 956 0.318825   # Flask log

Может ли кто-нибудь предложить стандартную практику глобальной настройки ведения журнала через файл конфигурации (т. Е. Чтобы я мог легко настроить отдельные пакеты).

ТАКЖЕ, я не могу удалить ведение журнала HTTP (GET и т. д.) в stderr (которое, как я полагаю, исходит от werkzeug); настройка logging.getLogger('werkzeug').setLevel() влияет только на журналы werkzeug, которые не связаны с ведением журнала HTTP.

Спасибо.


person rsb    schedule 28.07.2015    source источник


Ответы (1)


Я почти уверен, что в документации Flask есть статья об этом: https://flask.palletsprojects.com/en/1.1.x/logging/#other-libraries

В основном предлагается добавить обработчики других библиотек в корень Flask. Вот пример, который они приводят:

from flask.logging import default_handler

root = logging.getLogger()
root.addHandler(default_handler)
root.addHandler(mail_handler)
person Gijs Wobben    schedule 15.11.2019