2012-08-05 28 views
6

有没有办法从一个配置文件配置烧瓶app.logger,如:如何从配置文件配置flask app.logger?

logging.config.fileConfig('/path/to/logging.cfg') 

logging.config.dictConfig(config_dict) 

所以我可以用app.logger.info('some message')登录无论是在开发和产品模式。

+0

因为烧瓶使用标准的'logging'模块,所以它们应该正确挂钩。 whathaveyoutried.com? – msw 2012-08-05 12:11:48

+0

我试过'logging.config.dictConfig',但它不起作用。 – greatghoul 2012-08-05 13:25:33

+1

您需要发布更多关于您尝试过的内容的详细信息 - 否则很难知道问题可能出在哪里。 – 2012-08-05 13:36:52

回答

1

更改logging第22行到app.logger - 将为您当前的Flask应用程序配置记录器。或者,您可以使用记录模块的getLogger功能并使用app.logger_name来拉出正确的记录器。

+2

由于源代码链接已死,我很难理解这一点。然后我意识到你所要做的就是:首先初始化Flask记录器,然后加载logging.config()。 – 2014-05-08 00:16:50

+1

@the_maplebar你可以发布一个片段 – ramu 2015-06-19 19:39:52

4

您需要先致电app.logger,然后再致电logging.config.dictConfig(config_dict)。记录器名称应该在config_dict和app.logger_name中相同

+1

谢谢,这个作品!你能解释为什么这是必要的吗? – alex3772 2017-03-03 00:23:49

+1

事实证明,在配置之前初始化'app.logger'是必要的,因为初始化'app.logger'会消除先前添加的处理程序。这个github问题的更多细节:https://github.com/pallets/flask/issues/641 – 2017-04-28 18:50:46