使用logcxx库和boost库构建系统日志的格式化输出

logcxx库作为一个强大的C++日志系统,在业内得到越来越多的应用。但是logcxx库欠缺一个格式化日志输出的能力,却不能不说这是它的一个比较大的缺陷。当然你可以说借助字符串类的格式化功能,然后把它塞到logcxx库的接口函数里,比如标准C库的snprintf函数,STL的std::ostringstream和MFC的CString的Format接口。snprintf的缺点在于你得先定义一个大缓冲区(不大的话担心装不下日志信息),而且它不是类型安全的;std::ostringstream使用安全,但是还是先得定义ostringstream对象来构造格式化字符串;CString一则是MFC程序专用,二则它不是类型安全的,三则如果把它塞到logcxx库接口里,隐含了一个CString到char*的转换操作。...

2016-04-21 浏览量(405)