金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 659030
排名 - 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" 錯誤(11054)
2.?SVN中邪惡的replace(10972)
3.?VS2005編譯libevent(10429)
4.?混音算法的學習與研究(10230)
5.?C調用lua腳本的效率測試(9019)
評論排行榜
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
金慶
閱讀(5061)
評論(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
|
亚洲国产精品综合久久一线
|
思思久久99热免费精品6
|
少妇人妻88久久中文字幕
|
欧美久久精品一级c片片
|
武侠古典久久婷婷狼人伊人
|
老色鬼久久亚洲AV综合
|
国产国产成人久久精品
|
久久综合噜噜激激的五月天
|
久久久久久久综合综合狠狠
|
久久久久成人精品无码中文字幕
|
亚洲愉拍99热成人精品热久久
|
国产精品九九久久免费视频
|
日本精品久久久久中文字幕
|
亚洲综合久久久
|
色成年激情久久综合
|
一本色道久久99一综合
|
久久午夜综合久久
|
日韩精品国产自在久久现线拍
|
日产精品久久久一区二区
|
亚洲精品国产自在久久
|
久久精品无码av
|
国产L精品国产亚洲区久久
|
久久精品国产亚洲77777
|
伊人色综合久久天天人手人婷
|
久久久久人妻一区精品性色av
|
亚洲一区精品伊人久久伊人
|
国产精品免费看久久久香蕉
|
日韩精品国产自在久久现线拍
|
91久久婷婷国产综合精品青草
|
久久99精品国产自在现线小黄鸭
|
国产三级久久久精品麻豆三级
|
欧美亚洲国产精品久久
|
少妇熟女久久综合网色欲
|
久久久精品视频免费观看
|
观看 国产综合久久久久鬼色 欧美 亚洲 一区二区
|
99久久精品免费看国产
|
亚洲天堂久久精品
|
久久久久国色AV免费观看
|
久久精品无码一区二区app
|