青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
   C++ 技術(shù)中心
::
首頁
::
聯(lián)系
:: ::
管理
160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks
公告
鄭重聲明:本BLOG所發(fā)表的原創(chuàng)文章,作者保留一切權(quán)利。必須經(jīng)過作者本人同意后方可轉(zhuǎn)載,并注名作者(天空)和出處(CppBlog.com)。作者Email:coder@luckcoder.com
留言簿
(27)
給我留言
查看公開留言
查看私人留言
隨筆分類
C++ STL(2)
C++ 基礎(chǔ)(31)
Delphi(2)
Linux 編程(29)
Linux 操作(22)
MSSQL(1)
MYSQL(21)
Oracle
python編程(1)
UML(3)
Windows 編程(10)
Windows 網(wǎng)絡(luò)編程(6)
工具(1)
其他編程(11)
其他生活類
三方庫(5)
生活(7)
五線譜(1)
游戲開發(fā)(14)
隨筆檔案
2020年5月 (2)
2017年12月 (1)
2017年11月 (1)
2017年9月 (1)
2017年8月 (1)
2017年7月 (1)
2017年6月 (3)
2017年4月 (2)
2017年3月 (3)
2016年6月 (1)
2016年1月 (1)
2015年12月 (2)
2015年5月 (1)
2015年2月 (1)
2014年12月 (2)
2014年11月 (4)
2014年9月 (2)
2014年8月 (1)
2014年7月 (1)
2014年6月 (3)
2014年5月 (1)
2014年4月 (1)
2014年3月 (1)
2013年12月 (5)
2013年11月 (2)
2013年10月 (1)
2013年9月 (9)
2013年8月 (6)
2013年7月 (11)
2013年6月 (5)
2013年4月 (8)
2013年3月 (4)
2013年1月 (3)
2012年12月 (5)
2012年11月 (2)
2012年10月 (5)
2012年9月 (7)
2012年8月 (7)
2012年7月 (1)
2012年6月 (1)
2012年5月 (1)
2012年3月 (11)
2012年2月 (1)
2011年12月 (1)
2011年11月 (1)
2011年10月 (1)
2011年9月 (1)
2011年8月 (1)
2011年7月 (1)
2011年6月 (2)
2011年4月 (11)
2011年3月 (9)
搜索
最新隨筆
1.?origin游戲服務(wù)器引擎介紹
2.?golang游戲服務(wù)器引擎
3.?套接字read/write返回值
4.?關(guān)于linux信號總結(jié)
5.?A*算法實現(xiàn)
6.?vc內(nèi)存地址填充
7.?c++函數(shù)throw()
8.?EA類的關(guān)系
9.?游戲服務(wù)器相關(guān)討論(轉(zhuǎn))
10.?C/C++中volatile與 mutable,explicit 關(guān)鍵字詳解
最新評論
1.?re: 10個C++11特性
std::move() 解除引用,提供效率,所謂的右值處理,一開始也沒看明白,后來覺得有這個挺好
--放屁阿狗
2.?re: A*算法實現(xiàn)
評論內(nèi)容較長,點擊標(biāo)題查看
--放屁阿狗
3.?re: 內(nèi)存泄露監(jiān)控報告
用 BoundsChecker 吧,原理大家都懂但是自己做沒必要(盜版滴)
--萬連文
4.?re: vc內(nèi)存地址填充
你看的不全啊,0xcc表示是指令碼:int 3,也就是軟中斷,
--冬瓜
5.?re: 10個C++11特性
評論內(nèi)容較長,點擊標(biāo)題查看
--lz
評論排行榜
1.?一個封裝好的線程類(7)
2.?格式化字符串(6)
3.?字符串格式化防止數(shù)組越界(6)
4.?關(guān)于warning C4819(5)
5.?CodeLite 出現(xiàn)中文亂碼問題(4)
log4cplus庫(二)(通過布局器Layouts)
一.各種布局器
log4cplus通過布局器(Layouts)來控制輸出的格式,log4cplus提供了三種類型的Layouts分別是:
SimpleLayout、PatternLayout、和TTCCLayout。
二.SimpleLayout
是一種簡單格式的布局器,在輸出的原始信息之前加上LogLevel和一個"-"。
比如以下代碼片段:
//
step 1: Instantiate an appender object
SharedObjectPtr _append (
new
ConsoleAppender());
_append
->
setName(
"
append for test
"
);
//
step 2: Instantiate a layout object
std::auto_ptr _layout(
new
log4cplus::SimpleLayout());
//
step 3: Attach the layout object to the appender
_append
->
setLayout( _layout );
//
step 4: Instantiate a logger object
Logger _logger
=
Logger::getInstance(
"
test
"
);
//
step 5: Attach the appender object to the logger
_logger.addAppender(_append);
//
log activity
LOG4CPLUS_DEBUG(_logger,
"
This is the simple formatted log message
"
)
將打印結(jié)果:DEBUG
-
This
is
the simple formatted log message
三. PatternLayout
是一種有詞法分析功能的模式布局器,一提起模式就會想起正則表達(dá)式,
這里的模式和正則表達(dá)式類似,但是遠(yuǎn)比后者簡單,能夠?qū)︻A(yù)定義的標(biāo)識符
(稱為conversion specifiers)進行解析,轉(zhuǎn)換成特定格式輸出。以下代碼
片段演示了如何使用PatternLayout:
//
step 1: Instantiate an appender object
SharedObjectPtr _append (
new
ConsoleAppender());
_append
->
setName(
"
append for test
"
);
//
step 2: Instantiate a layout object
std::
string
pattern
=
"
%d{%m/%d/%y %H:%M:%S} - %m [%l]%n
"
;
std::auto_ptr _layout(
new
PatternLayout(pattern));
//
step 3: Attach the layout object to the appender
_append
->
setLayout( _layout );
//
step 4: Instantiate a logger object
Logger _logger
=
Logger::getInstance(
"
test_logger.subtest
"
);
//
step 5: Attach the appender object to the logger
_logger.addAppender(_append);
//
log activity
LOG4CPLUS_DEBUG(_logger,
"
teststr
"
)
輸出結(jié)果:
10
/
16
/
04
18
:
51
:
25
-
teststr [main.cpp:
51
]
可以看出通過填寫特定格式的模式字符串"pattern",原始信息被包含到一堆有格式的信息當(dāng)中了,
這就使得用戶可以根據(jù)自身需要來定制顯示內(nèi)容。"pattern"可以包含普通字符串和預(yù)定義的標(biāo)識符,
其中:(
1)普通字符串,能夠被直接顯示的信息。
2)預(yù)定義標(biāo)識符,通過"%"與一個或多個字符共同構(gòu)成預(yù)定義的標(biāo)識符,能夠產(chǎn)生出特定格式信息。
關(guān)于預(yù)定義標(biāo)識符,log4cplus文檔中提供了詳細(xì)的格式說明,我每種都試了一下,以上述代碼為例,
根據(jù)不同的pattern,各種消息格式使用情況列舉如下:
(1)"%%",轉(zhuǎn)義為%, 即,std::string pattern = "%%" 時輸出: "%"
(2)"%c",輸出logger名稱,比如std::string pattern ="%c" 時輸出: "test_logger.subtest"
也可以控制logger名稱的顯示層次,比如"%c{1}"時輸出"test_logger",其中數(shù)字表示層次。
(3)"%D",顯示本地時間,當(dāng)std::string pattern ="%D" 時輸出:"2004-10-16 18:55:45",%d顯示標(biāo)準(zhǔn)時間,
所以當(dāng)std::string pattern ="%d" 時輸出 "2004-10-16 10:55:45" (因為我們是東8區(qū),差8個小時啊)。
可以通過%d{...}定義更詳細(xì)的顯示格式,比如%d{%H:%M:%s}表示要顯示小時:分鐘:秒。大括號中可顯示的
預(yù)定義標(biāo)識符如下:%a -- 表示禮拜幾,英文縮寫形式,比如"Fri"%A -- 表示禮拜幾,比如"Friday"%b -- 表示幾月份,
英文縮寫形式,
比如"Oct"%B -- 表示幾月份,"October"%c -- 標(biāo)準(zhǔn)的日期+時間格式,
如 "Sat Oct 16 18:56:19 2004"%d -- 表示今天是這個月的幾號(1-31)"16"%H -- 表示當(dāng)前時刻是幾時(0-23),
如 "18"%I -- 表示當(dāng)前時刻是幾時(1-12),如 "6"%j -- 表示今天是哪一天(1-366),
如 "290"%m -- 表示本月是哪一月(1-12),
如 "10"%M -- 表示當(dāng)前時刻是哪一分鐘(0-59),
如 "59"%p -- 表示現(xiàn)在是上午還是下午, AM or PM%q -- 表示當(dāng)前時刻中毫秒部分(0-999),
如 "237"%Q -- 表示當(dāng)前時刻中帶小數(shù)的毫秒部分(0-999.999),
如 "430.732"%S -- 表示當(dāng)前時刻的多少秒(0-59),
如 "32"%U -- 表示本周是今年的第幾個禮拜,以周日為第一天開始計算(0-53),
如 "41"%w -- 表示禮拜幾,(0-6, 禮拜天為0),
如 "6"%W -- 表示本周是今年的第幾個禮拜,以周一為第一天開始計算(0-53),
如 "41"%x -- 標(biāo)準(zhǔn)的日期格式,如 "10/16/04"%X -- 標(biāo)準(zhǔn)的時間格式,
如 "19:02:34"%y -- 兩位數(shù)的年份(0-99),如 "04"%Y -- 四位數(shù)的年份,
如 "2004"%Z -- 時區(qū)名,比如 "GMT"
(4)"%F",輸出當(dāng)前記錄器所在的文件名稱,比如std::string pattern ="%F" 時輸出: "main.cpp"
(5)"%L",輸出當(dāng)前記錄器所在的文件行號,比如std::string pattern ="%L" 時輸出: "51"
(6)"%l",輸出當(dāng)前記錄器所在的文件名稱和行號,比如std::string pattern ="%L" 時輸出: "main.cpp:51"
(7)"%m",輸出原始信息,比如std::string pattern ="%m" 時輸出: "teststr",即上述代碼中 LOG4CPLUS_DEBUG的第二個參數(shù),
這種實現(xiàn)機制可以確保原始信息被嵌入到帶格式的信息中。
(8)"%n",換行符,沒什么好解釋的
(9)"%p",輸出LogLevel,比如std::string pattern ="%p" 時輸出: "DEBUG"
(10)"%t",輸出記錄器所在的線程ID,比如std::string pattern ="%t" 時輸出: "1075298944"
(11)"%x",嵌套診斷上下文NDC (nested diagnostic context) 輸出,從堆棧中彈出上下文信息,NDC可以用對
不同源的log信息(同時地)交叉輸出進行區(qū)分,關(guān)于NDC方面的詳細(xì)介紹會在下文中提到。
(12)格式對齊,比如std::string pattern ="%-10m"時表示左對齊,寬度是10,此時會輸出"teststr ",當(dāng)
然其它的控制字符也可以相同的方式來使用,比如"%-12d","%-5p"等等(剛接觸log4cplus文檔時還以為
"%-5p"整個字符串代表LogLevel呢,呵呵)。
四. TTCCLayout
是在PatternLayout基礎(chǔ)上發(fā)展的一種缺省的帶格式輸出的布局器, 其格式由時間,線程ID,Logger和NDC 組成
。提供給那些想顯示典型的信息(一般情況下夠用了)又懶得配置pattern的同志們。
TTCCLayout在構(gòu)造時有機會選擇顯示本地時間或GMT時間,缺省是按照本地時間顯示:
TTCCLayout::TTCCLayout(bool use_gmtime = false)
以下代碼片段演示了如何使用TTCCLayout:
//
step 1: Instantiate an appender object
SharedObjectPtr _append (
new
ConsoleAppender());
_append
->
setName(
"
append for test
"
);
//
step 2: Instantiate a layout object
std::auto_ptr _layout(
new
TTCCLayout());
//
step 3: Attach the layout object to the appender
_append
->
setLayout( _layout );
//
step 4: Instantiate a logger object
Logger _logger
=
Logger::getInstance(
"
test_logger
"
);
//
step 5: Attach the appender object to the logger
_logger.addAppender(_append);
//
log activity
LOG4CPLUS_DEBUG(_logger,
"
teststr
"
)
輸出結(jié)果:
10
-
16
-
04
19
:
08
:
27
,
501
[
1075298944
] DEBUG test_logger
<>
-
teststr
當(dāng)構(gòu)造TTCCLayout對象時選擇GMT時間格式時:
//
step 2: Instantiate a layout object
std::auto_ptr _layout(
new
TTCCLayout(
true
));
輸出結(jié)果:
10
-
16
-
04
11
:
12
:
47
,
678
[
1075298944
] DEBUG test_logger
<>
-
teststr
*/
posted on 2011-04-02 15:43
C++技術(shù)中心
閱讀(3633)
評論(0)
編輯
收藏
引用
所屬分類:
三方庫
只有注冊用戶
登錄
后才能發(fā)表評論。
相關(guān)文章:
memcached安裝
log4cplus庫(四)(優(yōu)先級與日志配置)
log4cplus庫(三)(將日志寫入到文件)
log4cplus庫(二)(通過布局器Layouts)
log4cplus庫(一)(簡單使用)
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright @ C++技術(shù)中心
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
国产精品综合视频
|
99国产一区二区三精品乱码
|
麻豆国产精品777777在线
|
性视频1819p久久
|
欧美日韩一区自拍
|
亚洲伦理中文字幕
|
一二三四社区欧美黄
|
欧美美女视频
|
日韩午夜电影
|
亚洲欧美高清
|
国产麻豆日韩欧美久久
|
亚洲欧美精品在线
|
欧美在线观看网址综合
|
国产日韩欧美精品在线
|
欧美一区二区三区免费观看
|
欧美精品一区在线播放
|
亚洲电影一级黄
|
亚洲三级电影全部在线观看高清
|
欧美va天堂va视频va在线
|
欧美激情一二区
|
亚洲精品中文字幕女同
|
欧美三区美女
|
亚洲私拍自拍
|
久久不射中文字幕
|
国产在线精品一区二区夜色
|
久久久精品国产免费观看同学
|
欧美jizz19性欧美
|
亚洲精品久久7777
|
欧美性淫爽ww久久久久无
|
亚洲一区在线播放
|
久久久久9999亚洲精品
|
亚洲国产成人av
|
欧美日韩免费区域视频在线观看
|
亚洲午夜极品
|
免费观看一区
|
亚洲图色在线
|
黄色成人小视频
|
欧美日本精品在线
|
午夜欧美大片免费观看
|
欧美国产激情二区三区
|
亚洲影音一区
|
亚洲电影下载
|
国产精品久久久久久久久免费
|
国产女精品视频网站免费
|
亚洲乱码一区二区
|
欧美揉bbbbb揉bbbbb
|
午夜精品三级视频福利
|
欧美成ee人免费视频
|
亚洲视频一区二区在线观看
|
国产亚洲福利社区一区
|
欧美成人精品在线视频
|
亚洲综合二区
|
性色av一区二区三区红粉影视
|
久久久国产一区二区三区
|
亚洲肉体裸体xxxx137
|
性久久久久久久久
|
亚洲国产精品一区二区www
|
国产精品久久7
|
久热精品视频在线
|
亚洲综合色激情五月
|
亚洲欧洲精品一区二区三区波多野1战4
|
欧美一区二区三区男人的天堂
|
亚洲福利av
|
国产精品日本一区二区
|
欧美11—12娇小xxxx
|
欧美一区三区三区高中清蜜桃
|
亚洲人在线视频
|
女同性一区二区三区人了人一
|
亚洲欧美中日韩
|
亚洲精品久久久久中文字幕欢迎你
|
亚洲欧美日本精品
|
亚洲九九爱视频
|
欧美高清成人
|
久久亚洲风情
|
欧美一区二区三区免费视
|
一本大道久久a久久精二百
|
在线免费日韩片
|
国产日韩视频
|
国产精品日韩高清
|
欧美视频一区二区在线观看
|
欧美大片第1页
|
久久xxxx
|
欧美在线一区二区
|
亚洲欧美日韩国产成人精品影院
|
亚洲人成在线观看一区二区
|
男女精品网站
|
久久婷婷久久
|
久久精品综合一区
|
久久久精彩视频
|
久久九九免费视频
|
欧美一区二区女人
|
午夜精品久久久久影视
|
一区二区欧美日韩
|
日韩西西人体444www
|
亚洲精品日韩在线观看
|
亚洲欧洲精品一区二区三区
|
在线观看亚洲视频
|
激情成人综合网
|
狠狠色狠狠色综合日日91app
|
国产亚洲毛片在线
|
国产午夜精品一区理论片飘花
|
国产精品国色综合久久
|
欧美日韩在线观看一区二区
|
欧美精品日韩一区
|
欧美日本乱大交xxxxx
|
欧美成人精品
|
欧美女同视频
|
欧美三区在线观看
|
国产精品国产三级国产专区53
|
亚洲欧美乱综合
|
午夜精品www
|
欧美一区二区在线观看
|
久久av在线
|
裸体丰满少妇做受久久99精品
|
麻豆精品在线播放
|
欧美激情第3页
|
欧美日韩午夜精品
|
国产精品久久久久9999
|
国产日产亚洲精品
|
精品99一区二区
|
亚洲精品一区二区网址
|
亚洲视频每日更新
|
中文av一区二区
|
国产一级一区二区
|
永久免费视频成人
|
亚洲日本中文字幕区
|
99精品99
|
久久不射电影网
|
亚洲福利视频一区
|
一区二区福利
|
性色av一区二区三区
|
蜜臀91精品一区二区三区
|
欧美日韩国产在线观看
|
国产精品区一区二区三
|
伊人色综合久久天天
|
av不卡在线观看
|
欧美中文字幕在线播放
|
亚洲第一精品电影
|
一区二区三区偷拍
|
久久国产精品久久久
|
欧美1区3d
|
国产精品大片wwwwww
|
国产一在线精品一区在线观看
|
亚洲欧洲一区二区天堂久久
|
亚洲永久在线
|
狂野欧美性猛交xxxx巴西
|
亚洲国产成人久久
|
亚洲一区二区三区乱码aⅴ蜜桃女
|
久久久久一区二区三区
|
欧美日韩国产精品一区
|
国产一区二区高清视频
|
亚洲精品网站在线播放gif
|
欧美一区二区啪啪
|
亚洲国产高潮在线观看
|
亚洲综合精品自拍
|
欧美激情第8页
|
国语自产在线不卡
|
一区二区三区四区国产
|
噜噜噜躁狠狠躁狠狠精品视频
|
欧美aⅴ一区二区三区视频
|
99re在线精品
|
久久久久久久999精品视频
|
欧美日韩一卡二卡
|
在线观看亚洲精品
|
欧美在线亚洲
|
一区二区三区国产精华
|
免费成人毛片
|
黄色小说综合网站
|
亚洲欧美日韩精品久久久
|
欧美激情一区二区在线
|
亚欧美中日韩视频
|
欧美色视频在线
|
最新亚洲一区
|
麻豆91精品91久久久的内涵
|
亚洲制服欧美中文字幕中文字幕
|
欧美岛国在线观看
|
尤物在线精品
|
久久精品123
|
亚洲小说欧美另类婷婷
|
欧美欧美在线
|
亚洲精品视频一区二区三区
|
噜噜噜躁狠狠躁狠狠精品视频
|
中国成人黄色视屏
|
欧美国产国产综合
|
亚洲高清中文字幕
|
久久夜色精品国产欧美乱极品
|
在线亚洲伦理
|
欧美日韩亚洲视频
|
99精品欧美一区二区三区综合在线
|
欧美成人一区二区三区片免费
|
亚洲国产精品电影在线观看
|
久久一区激情
|
在线成人中文字幕
|
欧美成人午夜77777
|
久久五月婷婷丁香社区
|
一区二区在线看
|
久热精品视频在线观看
|
久久精彩视频
|
在线精品国精品国产尤物884a
|
久久蜜臀精品av
|