2012-08-05 27 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