金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(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)
相冊
公告照片
搜索
積分與排名
積分 - 653959
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11016)
2.?SVN中邪惡的replace(10938)
3.?VS2005編譯libevent(10404)
4.?混音算法的學習與研究(10183)
5.?C調用lua腳本的效率測試(9003)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
log4cxx配合boost::format
log4cpp用了多年了, 一直用得很得心應手.
現在做網游服務器, 日志類換成了log4cxx.
log4xx會自動加載工作目錄下的log4j.properties, 這一點比較好, 使用更方便了.
log4j.properties應該與log4j的配置文件完全一樣吧? 通用性好.
其他方面兩個日志類差不多. log4cxx::Logger對應log4cpp::Category.
Appender, Layout都是相同的概念.
自從log4cxx從0.9.7升到0.10, 據說內部架構重大更改, 而且有apache的大名頂著, 好像支持者大增.
而log4cpp成熟較早, 一直以來沒什么更新, 日漸衰落.
有一點重大區別, log4cxx不支持如printf格式的變參數日志:
log4cpp::Category::getRoot().info("%s %d", "test", 3);
而log4cxx只能先格式化一個字符串后再記日志.
log4cxx::Logger::getRootLogger()->info("A string");
這樣log4cxx的性能會差很多. 當日志等級不需要記日志時, 就應該不要格式化字符串.
log4cxx有一組宏, 可以先判斷日志等級, 然后再輸出.
LOG4CXX_DEBUG(logger, message)
可以這樣調用:
LOG4CXX_DEBUG(logger, "test " << 3);
可能是出于安全的考慮, 故意禁止用戶使用格式化串. 因為格式化串無法檢測類型.
我以前在使用log4cpp的時候, 總是要多次檢查格式化串參數是否匹配.
也碰到過因為日志導致程序崩潰的例子.
因為像警告,錯誤類的日志幾乎是不太可能出現的.
測試時, 可能無法覆蓋這類日志代碼.
而使用流就可以大膽放心.
但是有大半的使用情況下, 流方式輸出會顯得冗長, 格式控制也沒有printf簡潔.
只有簡單的輸出才會使用流.
幸好有boost::format. 它就是類型安全的printf. log4cxx配合boost::format真是絕配.
例如:
LOG4CXX_DEBUG(logger, format("%1% %2%") % "test" % 3)
想起了好用的MFC CString::Format()和Delphi的Format(),
boost::format雖然用'%'顯得怪怪的, 但絕對是更安全的格式化串.
(轉載請注明來源于金慶的專欄)
posted on 2008-11-20 19:46
金慶
閱讀(5049)
評論(2)
編輯
收藏
引用
所屬分類:
1. C/C++
、
2. 網游開發
評論
#
re: log4cxx配合boost::format
2008-11-21 10:51
cui
我也寫了一個輕型的日志庫..
http://code.google.com/p/netdkit/source/browse/#svn/trunk/logger
請指點一二..
回復
更多評論
#
re: log4cxx配合boost::format
2012-05-14 14:17
sa
很好
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內存錯誤
std::thread 中的異常會丟失調用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標記
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
嫩草影院久久国产精品
|
久久人人爽人人爽人人片AV东京热
|
精品综合久久久久久97超人
|
日本三级久久网
|
亚洲国产日韩综合久久精品
|
久久人人爽人人爽人人片AV不
|
久久精品无码一区二区三区
|
久久99国产精品久久99小说
|
国产精品久久久久久福利漫画
|
国产精品美女久久久久网
|
久久精品中文字幕有码
|
久久久精品2019免费观看
|
久久精品国产精品亜洲毛片
|
久久一日本道色综合久久
|
色8激情欧美成人久久综合电
|
91精品国产乱码久久久久久
|
97精品伊人久久久大香线蕉
|
伊人久久大香线焦综合四虎
|
噜噜噜色噜噜噜久久
|
香蕉久久一区二区不卡无毒影院
|
久久久久亚洲AV成人网人人网站
|
久久综合狠狠综合久久激情
|
亚洲AV乱码久久精品蜜桃
|
亚洲精品乱码久久久久久不卡
|
久久无码av三级
|
国产精品久久久久久
|
久久99精品国产麻豆
|
狠狠色丁香久久婷婷综合
|
国产精品亚洲综合久久
|
日本加勒比久久精品
|
色婷婷噜噜久久国产精品12p
|
欧美喷潮久久久XXXXx
|
久久WWW免费人成一看片
|
老男人久久青草av高清
|
亚州日韩精品专区久久久
|
久久精品国产只有精品66
|
国产综合成人久久大片91
|
久久精品视屏
|
久久久久亚洲AV成人网
|
亚洲国产成人久久精品99
|
亚洲人成无码网站久久99热国产
|