2011-08-17 39 views
0

我是Boost的新手,我正在重新設計一個必須在線程應用程序中工作的日誌記錄類。它被設計成像一個ostream對象一樣工作,但「沒有工作」(在Eddy Izzard的聲音中,對於那些知道他提到Davinci直升機的人的聲音)。爲每個線程分配一個實例(Boost環境)

如下您可以使用它:

Logger &logger = Logger::instance(); 
logger << "He designed a helicopter you know...that did not work." << endl; 

所以最初被設計爲一個單和幾個方法後,我想也許記錄儀::實例()可以返回獨特的線程記錄儀。我可能會使用STL來定義Boost線程標識和Logger類的一個實例之間的映射。

然後我開始想,也許可能有更聰明的方式來使用某種形式的線程本地存儲來完成此操作?

地圖的一個問題是,我必須做一些房屋清潔,以便在線程終止時定期刪除記錄器。我開始感覺自己在重塑事物。

我看到Boost支持線程本地存儲。

任何想法或警告?

謝謝,

肯尼

回答

0

我使用了升壓線程本地存儲和登記的每個記錄器與數據漏斗要麼文件或COUT的對象。

Kenny