金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開發(fā)(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 656590
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統(tǒng)C++網(wǎng)絡(luò)庫
asio 成為C++首選網(wǎng)絡(luò)庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發(fā)送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內(nèi)容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11032)
2.?SVN中邪惡的replace(10955)
3.?VS2005編譯libevent(10413)
4.?混音算法的學(xué)習(xí)與研究(10203)
5.?C調(diào)用lua腳本的效率測試(9007)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優(yōu)于指針(17)
5.?ACE與ASIO之間關(guān)于Socket編程的比較(16)
log4cxx配合boost::format
log4cpp用了多年了, 一直用得很得心應(yīng)手.
現(xiàn)在做網(wǎng)游服務(wù)器, 日志類換成了log4cxx.
log4xx會自動加載工作目錄下的log4j.properties, 這一點比較好, 使用更方便了.
log4j.properties應(yīng)該與log4j的配置文件完全一樣吧? 通用性好.
其他方面兩個日志類差不多. log4cxx::Logger對應(yīng)log4cpp::Category.
Appender, Layout都是相同的概念.
自從log4cxx從0.9.7升到0.10, 據(jù)說內(nèi)部架構(gòu)重大更改, 而且有apache的大名頂著, 好像支持者大增.
而log4cpp成熟較早, 一直以來沒什么更新, 日漸衰落.
有一點重大區(qū)別, log4cxx不支持如printf格式的變參數(shù)日志:
log4cpp::Category::getRoot().info("%s %d", "test", 3);
而log4cxx只能先格式化一個字符串后再記日志.
log4cxx::Logger::getRootLogger()->info("A string");
這樣log4cxx的性能會差很多. 當日志等級不需要記日志時, 就應(yīng)該不要格式化字符串.
log4cxx有一組宏, 可以先判斷日志等級, 然后再輸出.
LOG4CXX_DEBUG(logger, message)
可以這樣調(diào)用:
LOG4CXX_DEBUG(logger, "test " << 3);
可能是出于安全的考慮, 故意禁止用戶使用格式化串. 因為格式化串無法檢測類型.
我以前在使用log4cpp的時候, 總是要多次檢查格式化串參數(shù)是否匹配.
也碰到過因為日志導(dǎo)致程序崩潰的例子.
因為像警告,錯誤類的日志幾乎是不太可能出現(xiàn)的.
測試時, 可能無法覆蓋這類日志代碼.
而使用流就可以大膽放心.
但是有大半的使用情況下, 流方式輸出會顯得冗長, 格式控制也沒有printf簡潔.
只有簡單的輸出才會使用流.
幸好有boost::format. 它就是類型安全的printf. log4cxx配合boost::format真是絕配.
例如:
LOG4CXX_DEBUG(logger, format("%1% %2%") % "test" % 3)
想起了好用的MFC CString::Format()和Delphi的Format(),
boost::format雖然用'%'顯得怪怪的, 但絕對是更安全的格式化串.
(轉(zhuǎn)載請注明來源于金慶的專欄)
posted on 2008-11-20 19:46
金慶
閱讀(5054)
評論(2)
編輯
收藏
引用
所屬分類:
1. C/C++
、
2. 網(wǎng)游開發(fā)
評論
#
re: log4cxx配合boost::format
2008-11-21 10:51
cui
我也寫了一個輕型的日志庫..
http://code.google.com/p/netdkit/source/browse/#svn/trunk/logger
請指點一二..
回復(fù)
更多評論
#
re: log4cxx配合boost::format
2012-05-14 14:17
sa
很好
回復(fù)
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內(nèi)存錯誤
std::thread 中的異常會丟失調(diào)用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標記
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
久久久亚洲精品蜜桃臀
|
精品国产VA久久久久久久冰
|
国产成人久久777777
|
久久精品亚洲欧美日韩久久
|
久久无码一区二区三区少妇
|
一本一道久久a久久精品综合
|
亚洲级αV无码毛片久久精品
|
777久久精品一区二区三区无码
|
欧美亚洲日本久久精品
|
久久天天躁狠狠躁夜夜96流白浆
|
久久无码人妻精品一区二区三区
|
久久久久久精品免费看SSS
|
国产精品成人久久久久三级午夜电影
|
久久青青色综合
|
99久久精品国产麻豆
|
最新久久免费视频
|
午夜不卡888久久
|
伊人久久大香线焦AV综合影院
|
亚洲级αV无码毛片久久精品
|
国产午夜久久影院
|
久久久久久精品免费免费自慰
|
亚洲狠狠久久综合一区77777
|
久久亚洲私人国产精品vA
|
免费精品久久久久久中文字幕
|
国产精品免费福利久久
|
久久人人爽人人人人爽AV
|
狠狠色综合网站久久久久久久
|
国产精品久久影院
|
久久久久亚洲精品无码蜜桃
|
亚洲人成伊人成综合网久久久
|
精品久久久久久久久免费影院
|
久久久久婷婷
|
久久久久亚洲av成人无码电影
|
久久国产精品99精品国产987
|
久久久无码精品亚洲日韩蜜臀浪潮
|
久久久久国产一级毛片高清版
|
漂亮人妻被黑人久久精品
|
无码国内精品久久人妻蜜桃
|
伊人久久大香线蕉亚洲
|
久久66热人妻偷产精品9
|
久久精品国产亚洲av日韩
|