Как вы настраиваете app.logger Flask в конфигурации вашего приложения? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть проект Flask и несколько файлов настроек для определения настроек, связанных с конфигурацией, для каждой среды (один для prod, один для dev и т. Д.).Они содержат такие значения, как настройки, связанные с БД, такие как имя пользователя и пароль БД и т. Д.

Хорошо, я выбираю конфигурацию для загрузки через переменную окружения:

app = Flask(__name__)
if os.environ.get("MYPROJ_SETTINGS"):
    app.config.from_object("settings." + os.environ.get("MYPROJ_SETTINGS"))
else:
    app.config.from_object("settings.default_settings")

Получено:Я хочу также настроить параметры ведения журналов в этих файлах настроек в форме конфигурации словаря, которую можно передать в dictConfig().Например, мне может потребоваться, чтобы уровень логики по умолчанию был равен WARN в prod, но DEBUG в dev, я мог бы хотеть использовать другие обработчики журналов и т. Д.

Моя проблема: как мне сохранить эту конфигурацию журналирования в течение всего процесса?мой проект, без необходимости передавать app.config в качестве параметра повсюду?

Есть ли идиоматический шаблон для этого во Flask?Я видел различные ссылки, в которых говорится о контексте current_app, но, насколько я понимаю, он доступен только в контексте запроса (и часть кода, который требуется для настройки ведения журнала, находится в отдельных модулях от кода веб-обработки).

В прошлом в Django я только что сделал from django.conf import settings, и пока ваш DJANGO_SETTINGS_MODULE настроен правильно, вы можете смотреть на настройки своего приложения практически в любом месте своего кода.И с точки зрения ведения журнала вы просто устанавливаете LOGGING dict в этих настройках , и тогда, когда вы import logging в своем проекте, регистратор будет настроен с этими настройками.Есть ли в Flask эквивалент?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...