2011-08-17 37 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