金慶的專欄
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 © 金慶
亚洲国产成人久久精品99
|
亚洲国产成人久久综合碰碰动漫3d
|
性高湖久久久久久久久
|
久久综合综合久久综合
|
99久久精品免费观看国产
|
久久久久久久久无码精品亚洲日韩
|
久久综合丝袜日本网
|
中文国产成人精品久久亚洲精品AⅤ无码精品
|
国産精品久久久久久久
|
亚洲日本va午夜中文字幕久久
|
国内精品伊人久久久久影院对白
|
青青青青久久精品国产
|
色综合久久久久
|
少妇久久久久久被弄到高潮
|
1000部精品久久久久久久久
|
久久久WWW成人免费精品
|
精品国产乱码久久久久久呢
|
狼狼综合久久久久综合网
|
欧美噜噜久久久XXX
|
狠狠色丁香婷婷久久综合不卡
|
青春久久
|
国产色综合久久无码有码
|
很黄很污的网站久久mimi色
|
久久99精品久久久久久水蜜桃
|
久久人搡人人玩人妻精品首页
|
99国产欧美久久久精品蜜芽
|
久久青青草原精品影院
|
无码人妻少妇久久中文字幕
|
亚洲AV无码1区2区久久
|
91超碰碰碰碰久久久久久综合
|
开心久久婷婷综合中文字幕
|
欧美va久久久噜噜噜久久
|
老司机国内精品久久久久
|
亚洲精品高清一二区久久
|
潮喷大喷水系列无码久久精品
|
久久亚洲sm情趣捆绑调教
|
人妻丰满?V无码久久不卡
|
国产精品久久午夜夜伦鲁鲁
|
久久久精品久久久久久
|
精品人妻久久久久久888
|
一本色综合久久
|