2010-05-11 28 views
0

在我們基於Pylons的網絡應用程序中,我們創建了一個基本上提供一些日誌記錄功能的類。我們需要爲每個http請求提供此類的新實例,但每個請求只有。如何在主塔中創建每個請求單體?

這是怎麼回事?我們是否應該在中間件中創建對象並存儲在request.environ中?有沒有更適合的方法去解決這個問題?

回答

1

在Paste中有一個很好的請求局部變量的實現:paste.registry Pylons使用它作爲它自己的請求局部全局變量。

只需像記錄一樣在「中間件」中創建對象並將全局變量導入到需要它的模塊中。 (中間件在scarequotes中,因爲它不是嚴格的中間件,因爲它依賴於它的功能它是你的應用程序/框架的一部分)

0

可能依賴於內置的功能嗎?

import logging 
logging.getLogger(__name__) 

日誌功能在Python中是相當可定製的。

+0

是的,我們正在使用它。我們不會自己重寫日誌記錄功能,我們正在編寫一個確定準確記錄什麼信息的類。 – 2010-05-11 16:15:06

+0

@dave mankoff:過濾器,處理程序和格式化程序不符合您的需求,是嗎? – newtover 2010-05-11 16:36:07

+0

nope。它不是關於過濾可用信息,而是關於捕獲特定於我們的應用程序的信息並將其提供給記錄器。 – 2010-05-11 16:54:29