金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 656583
排名 - 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" 錯誤(11032)
2.?SVN中邪惡的replace(10955)
3.?VS2005編譯libevent(10413)
4.?混音算法的學習與研究(10203)
5.?C調用lua腳本的效率測試(9007)
評論排行榜
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
金慶
閱讀(5054)
評論(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 © 金慶
精品国产婷婷久久久
|
久久综合亚洲色HEZYO社区
|
久久久久久久久久久久中文字幕
|
久久久青草青青亚洲国产免观
|
精品久久久久久久
|
久久免费视频6
|
欧美熟妇另类久久久久久不卡
|
国产精品美女久久久
|
久久久久国产亚洲AV麻豆
|
欧美亚洲色综久久精品国产
|
91久久精品国产成人久久
|
久久久久久伊人高潮影院
|
国产精品久久波多野结衣
|
国产精品一区二区久久精品涩爱
|
大伊人青草狠狠久久
|
一级女性全黄久久生活片免费
|
国产精品免费久久久久影院
|
久久久无码精品亚洲日韩京东传媒
|
久久久久久国产精品美女
|
国产精品久久久99
|
a高清免费毛片久久
|
77777亚洲午夜久久多人
|
久久久久香蕉视频
|
久久久精品免费国产四虎
|
久久久亚洲欧洲日产国码aⅴ
|
无码任你躁久久久久久
|
久久久久99精品成人片三人毛片
|
久久久久97国产精华液好用吗
|
丁香五月网久久综合
|
久久99国产综合精品免费
|
无码伊人66久久大杳蕉网站谷歌
|
国产69精品久久久久777
|
久久永久免费人妻精品下载
|
伊人久久大香线蕉综合Av
|
精品综合久久久久久98
|
久久99精品久久久久久不卡
|
国产激情久久久久影院小草
|
亚洲精品成人网久久久久久
|
青青草国产97免久久费观看
|
欧洲性大片xxxxx久久久
|
青青草原综合久久大伊人
|