使用logcxx库和boost库构建系统日志的格式化输出
作者:朱金燦
來源:http://blog.csdn.net/clever101/
logcxx庫作為一個強大的C++日志系統,在業內得到越來越多的應用。但是logcxx庫欠缺一個格式化日志輸出的能力,卻不能不說這是它的一個比較大的缺陷。當然你可以說借助字符串類的格式化功能,然后把它塞到logcxx庫的接口函數里,比如標準C庫的snprintf函數,STL的std::ostringstream和MFC的CString的Format接口。snprintf的缺點在于你得先定義一個大緩沖區(不大的話擔心裝不下日志信息),而且它不是類型安全的;std::ostringstream使用安全,但是還是先得定義ostringstream對象來構造格式化字符串;CString一則是MFC程序專用,二則它不是類型安全的,三則如果把它塞到logcxx庫接口里,隱含了一個CString到char*的轉換操作。下面我要介紹的方法比上面的方法都要簡單和安全,那就是使用boost庫的boost::format和boost::lexical_cast。
logcxx庫的使用方法這里我不作贅述,大致是設置一個配置文件,定義輸出方式、等級等,大家可以參考這篇文章:log4cxx 用法詳解。金慶大俠提出boost::format和logcxx庫配合使用(詳見參考文獻2),我試了一下很好用。不過我發現logcxx和
總結
以上是生活随笔為你收集整理的使用logcxx库和boost库构建系统日志的格式化输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么领导不重视软件质量?
- 下一篇: linux strtol