У меня есть проект 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 эквивалент?