如何在应用程序的配置中配置Flask的app.logger?

时间:2018-12-19 00:23:30

标签: python-3.x flask

我有一个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,但是在开发人员中为DEBUG,我可能希望使用其他日志处理程序,等等。

我的问题:如何使此日志记录配置在我的整个项目中保持不变,而不必在各处传递app.config作为参数?

在Flask中是否有惯用的模式?我看到了各种谈论current_app上下文的链接,但是我的理解是,这些链接仅在请求的上下文中可用(某些需要配置日志记录的代码与Web处理代码位于单独的模块中)。

过去,在Django中,我只是做过from django.conf import settings,只要正确设置了DJANGO_SETTINGS_MODULE,您就可以在代码中的几乎任何地方查看应用程序设置。并记录you just set a LOGGING dict in those settings,然后在项目中import logging进行记录时,记录器将使用这些设置进行配置。 Flask中有与之等效的东西吗?

0 个答案:

没有答案