青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
   C++ 技術中心
::
首頁
::
聯系
:: ::
管理
160 Posts :: 0 Stories :: 87 Comments :: 0 Trackbacks
公告
鄭重聲明:本BLOG所發表的原創文章,作者保留一切權利。必須經過作者本人同意后方可轉載,并注名作者(天空)和出處(CppBlog.com)。作者Email:coder@luckcoder.com
留言簿
(27)
給我留言
查看公開留言
查看私人留言
隨筆分類
C++ STL(2)
C++ 基礎(31)
Delphi(2)
Linux 編程(29)
Linux 操作(22)
MSSQL(1)
MYSQL(21)
Oracle
python編程(1)
UML(3)
Windows 編程(10)
Windows 網絡編程(6)
工具(1)
其他編程(11)
其他生活類
三方庫(5)
生活(7)
五線譜(1)
游戲開發(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游戲服務器引擎介紹
2.?golang游戲服務器引擎
3.?套接字read/write返回值
4.?關于linux信號總結
5.?A*算法實現
6.?vc內存地址填充
7.?c++函數throw()
8.?EA類的關系
9.?游戲服務器相關討論(轉)
10.?C/C++中volatile與 mutable,explicit 關鍵字詳解
最新評論
1.?re: 10個C++11特性
std::move() 解除引用,提供效率,所謂的右值處理,一開始也沒看明白,后來覺得有這個挺好
--放屁阿狗
2.?re: A*算法實現
評論內容較長,點擊標題查看
--放屁阿狗
3.?re: 內存泄露監控報告
用 BoundsChecker 吧,原理大家都懂但是自己做沒必要(盜版滴)
--萬連文
4.?re: vc內存地址填充
你看的不全啊,0xcc表示是指令碼:int 3,也就是軟中斷,
--冬瓜
5.?re: 10個C++11特性
評論內容較長,點擊標題查看
--lz
評論排行榜
1.?一個封裝好的線程類(7)
2.?格式化字符串(6)
3.?字符串格式化防止數組越界(6)
4.?關于warning C4819(5)
5.?CodeLite 出現中文亂碼問題(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
"
)
將打印結果:DEBUG
-
This
is
the simple formatted log message
三. PatternLayout
是一種有詞法分析功能的模式布局器,一提起模式就會想起正則表達式,
這里的模式和正則表達式類似,但是遠比后者簡單,能夠對預定義的標識符
(稱為conversion specifiers)進行解析,轉換成特定格式輸出。以下代碼
片段演示了如何使用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
"
)
輸出結果:
10
/
16
/
04
18
:
51
:
25
-
teststr [main.cpp:
51
]
可以看出通過填寫特定格式的模式字符串"pattern",原始信息被包含到一堆有格式的信息當中了,
這就使得用戶可以根據自身需要來定制顯示內容。"pattern"可以包含普通字符串和預定義的標識符,
其中:(
1)普通字符串,能夠被直接顯示的信息。
2)預定義標識符,通過"%"與一個或多個字符共同構成預定義的標識符,能夠產生出特定格式信息。
關于預定義標識符,log4cplus文檔中提供了詳細的格式說明,我每種都試了一下,以上述代碼為例,
根據不同的pattern,各種消息格式使用情況列舉如下:
(1)"%%",轉義為%, 即,std::string pattern = "%%" 時輸出: "%"
(2)"%c",輸出logger名稱,比如std::string pattern ="%c" 時輸出: "test_logger.subtest"
也可以控制logger名稱的顯示層次,比如"%c{1}"時輸出"test_logger",其中數字表示層次。
(3)"%D",顯示本地時間,當std::string pattern ="%D" 時輸出:"2004-10-16 18:55:45",%d顯示標準時間,
所以當std::string pattern ="%d" 時輸出 "2004-10-16 10:55:45" (因為我們是東8區,差8個小時啊)。
可以通過%d{...}定義更詳細的顯示格式,比如%d{%H:%M:%s}表示要顯示小時:分鐘:秒。大括號中可顯示的
預定義標識符如下:%a -- 表示禮拜幾,英文縮寫形式,比如"Fri"%A -- 表示禮拜幾,比如"Friday"%b -- 表示幾月份,
英文縮寫形式,
比如"Oct"%B -- 表示幾月份,"October"%c -- 標準的日期+時間格式,
如 "Sat Oct 16 18:56:19 2004"%d -- 表示今天是這個月的幾號(1-31)"16"%H -- 表示當前時刻是幾時(0-23),
如 "18"%I -- 表示當前時刻是幾時(1-12),如 "6"%j -- 表示今天是哪一天(1-366),
如 "290"%m -- 表示本月是哪一月(1-12),
如 "10"%M -- 表示當前時刻是哪一分鐘(0-59),
如 "59"%p -- 表示現在是上午還是下午, AM or PM%q -- 表示當前時刻中毫秒部分(0-999),
如 "237"%Q -- 表示當前時刻中帶小數的毫秒部分(0-999.999),
如 "430.732"%S -- 表示當前時刻的多少秒(0-59),
如 "32"%U -- 表示本周是今年的第幾個禮拜,以周日為第一天開始計算(0-53),
如 "41"%w -- 表示禮拜幾,(0-6, 禮拜天為0),
如 "6"%W -- 表示本周是今年的第幾個禮拜,以周一為第一天開始計算(0-53),
如 "41"%x -- 標準的日期格式,如 "10/16/04"%X -- 標準的時間格式,
如 "19:02:34"%y -- 兩位數的年份(0-99),如 "04"%Y -- 四位數的年份,
如 "2004"%Z -- 時區名,比如 "GMT"
(4)"%F",輸出當前記錄器所在的文件名稱,比如std::string pattern ="%F" 時輸出: "main.cpp"
(5)"%L",輸出當前記錄器所在的文件行號,比如std::string pattern ="%L" 時輸出: "51"
(6)"%l",輸出當前記錄器所在的文件名稱和行號,比如std::string pattern ="%L" 時輸出: "main.cpp:51"
(7)"%m",輸出原始信息,比如std::string pattern ="%m" 時輸出: "teststr",即上述代碼中 LOG4CPLUS_DEBUG的第二個參數,
這種實現機制可以確保原始信息被嵌入到帶格式的信息中。
(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信息(同時地)交叉輸出進行區分,關于NDC方面的詳細介紹會在下文中提到。
(12)格式對齊,比如std::string pattern ="%-10m"時表示左對齊,寬度是10,此時會輸出"teststr ",當
然其它的控制字符也可以相同的方式來使用,比如"%-12d","%-5p"等等(剛接觸log4cplus文檔時還以為
"%-5p"整個字符串代表LogLevel呢,呵呵)。
四. TTCCLayout
是在PatternLayout基礎上發展的一種缺省的帶格式輸出的布局器, 其格式由時間,線程ID,Logger和NDC 組成
。提供給那些想顯示典型的信息(一般情況下夠用了)又懶得配置pattern的同志們。
TTCCLayout在構造時有機會選擇顯示本地時間或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
"
)
輸出結果:
10
-
16
-
04
19
:
08
:
27
,
501
[
1075298944
] DEBUG test_logger
<>
-
teststr
當構造TTCCLayout對象時選擇GMT時間格式時:
//
step 2: Instantiate a layout object
std::auto_ptr _layout(
new
TTCCLayout(
true
));
輸出結果:
10
-
16
-
04
11
:
12
:
47
,
678
[
1075298944
] DEBUG test_logger
<>
-
teststr
*/
posted on 2011-04-02 15:43
C++技術中心
閱讀(3635)
評論(0)
編輯
收藏
引用
所屬分類:
三方庫
只有注冊用戶
登錄
后才能發表評論。
相關文章:
memcached安裝
log4cplus庫(四)(優先級與日志配置)
log4cplus庫(三)(將日志寫入到文件)
log4cplus庫(二)(通過布局器Layouts)
log4cplus庫(一)(簡單使用)
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright @ C++技術中心
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
中文一区二区在线观看
|
一区二区欧美国产
|
欧美综合国产精品久久丁香
|
亚洲精品国产拍免费91在线
|
免费高清在线视频一区·
|
黄色另类av
|
亚洲大胆av
|
欧美日韩大片一区二区三区
|
一本色道久久精品
|
亚洲图片你懂的
|
国模大胆一区二区三区
|
久久九九99
|
欧美成人免费全部
|
一区二区国产精品
|
亚洲一区二区三区四区五区午夜
|
国产精品日韩一区二区
|
久久精品国产久精国产一老狼
|
久久国产成人
|
亚洲激情自拍
|
一区二区三区波多野结衣在线观看
|
国产精品久久久久久久久久妞妞
|
新狼窝色av性久久久久久
|
欧美中文字幕视频
|
日韩午夜电影在线观看
|
亚洲一区日韩在线
|
亚洲国产精品国自产拍av秋霞
|
亚洲美女一区
|
国产一级揄自揄精品视频
|
欧美成人午夜视频
|
国产精品久久久久秋霞鲁丝
|
老司机一区二区
|
欧美日韩在线精品
|
欧美成年视频
|
国产精品视频一区二区高潮
|
欧美mv日韩mv国产网站
|
国产精品高潮呻吟视频
|
欧美成人精品h版在线观看
|
欧美日韩1区2区3区
|
久久精品国产精品亚洲综合
|
欧美激情国产高清
|
久久天堂成人
|
国产精品视频免费
|
亚洲精品一区二区在线
|
在线日本高清免费不卡
|
亚洲一区二区在线观看视频
|
亚洲国产专区校园欧美
|
亚洲欧美日韩在线不卡
|
日韩视频免费
|
久久久国产午夜精品
|
亚洲欧美国产毛片在线
|
欧美韩日一区
|
欧美成人第一页
|
国产日产精品一区二区三区四区的观看方式
|
欧美在线观看天堂一区二区三区
|
亚洲人成久久
|
在线观看欧美日本
|
亚欧美中日韩视频
|
亚洲欧美激情视频
|
欧美另类久久久品
|
亚洲激情视频
|
亚洲人成人77777线观看
|
欧美综合国产
|
久久久精品五月天
|
国产欧美日韩在线视频
|
亚洲视频 欧洲视频
|
一区二区激情视频
|
欧美国产日韩视频
|
亚洲高清免费视频
|
日韩一二三区视频
|
欧美精品国产一区二区
|
亚洲电影一级黄
|
亚洲精品国产精品乱码不99
|
玖玖玖免费嫩草在线影院一区
|
久久精品理论片
|
国内成+人亚洲
|
久久久久综合
|
欧美电影免费观看网站
|
美女免费视频一区
|
欧美成人免费小视频
|
亚洲黄色av一区
|
欧美精品在线免费播放
|
亚洲精品乱码久久久久久按摩观
|
亚洲精品免费一区二区三区
|
欧美激情女人20p
|
日韩视频免费看
|
亚洲男人第一网站
|
国产一区二区福利
|
久久一区亚洲
|
亚洲三级电影在线观看
|
亚洲欧美成人
|
国产综合自拍
|
欧美激情影音先锋
|
亚洲午夜久久久
|
久久只有精品
|
亚洲麻豆一区
|
国产日产精品一区二区三区四区的观看方式
|
亚洲免费视频网站
|
蘑菇福利视频一区播放
|
一本色道久久综合亚洲91
|
国产精品久久精品日日
|
久久gogo国模裸体人体
|
亚洲人午夜精品免费
|
亚洲一区二区视频
|
狠狠色噜噜狠狠狠狠色吗综合
|
欧美va天堂va视频va在线
|
一区二区三区免费看
|
久久亚洲国产成人
|
中文在线一区
|
尤物九九久久国产精品的特点
|
欧美国产一区二区在线观看
|
亚洲一区二区免费
|
欧美电影美腿模特1979在线看
|
亚洲网址在线
|
在线国产精品一区
|
国产精品一二三四区
|
欧美国产日韩在线观看
|
欧美一级播放
|
亚洲视频 欧洲视频
|
欧美大片在线观看
|
久久se精品一区二区
|
一区二区毛片
|
在线欧美日韩国产
|
国产婷婷精品
|
国产精品a久久久久久
|
久久综合色播五月
|
欧美亚洲视频在线看网址
|
99精品久久久
|
亚洲日韩视频
|
亚洲电影在线播放
|
美女久久一区
|
久久精品九九
|
欧美在线视频全部完
|
一区二区三区**美女毛片
|
亚洲第一毛片
|
狠狠色丁香久久婷婷综合丁香
|
国产精品午夜视频
|
欧美视频在线观看一区
|
欧美激情一区三区
|
免费日韩成人
|
可以看av的网站久久看
|
久久国产欧美日韩精品
|
先锋资源久久
|
欧美一级播放
|
性欧美18~19sex高清播放
|
中国成人在线视频
|
一区二区三区精品国产
|
亚洲乱码日产精品bd
|
亚洲日韩欧美一区二区在线
|
亚洲黄色免费网站
|
亚洲福利视频在线
|
亚洲国产成人精品女人久久久
|
男人的天堂亚洲在线
|
久久久久一本一区二区青青蜜月
|
欧美一区在线看
|
久久久久国色av免费看影院
|
91久久线看在观草草青青
|
极品少妇一区二区三区
|
伊人久久综合97精品
|
亚洲国产精品成人va在线观看
|
亚洲成人资源网
|
亚洲高清自拍
|
9国产精品视频
|
亚洲一区二区3
|
性做久久久久久久久
|
久久精品理论片
|
欧美成人精品在线播放
|
亚洲国产精品激情在线观看
|
亚洲日本乱码在线观看
|
亚洲另类一区二区
|
亚洲男女自偷自拍
|
久久国产精品一区二区三区四区
|
久久久之久亚州精品露出
|
女女同性精品视频
|
欧美天天视频
|
一区二区在线观看视频
|
日韩视频―中文字幕
|
午夜视频在线观看一区二区三区
|
欧美综合国产
|
亚洲国产成人av在线
|
一区二区三区四区国产精品
|
欧美在线观看www
|
欧美激情乱人伦
|
国产女人aaa级久久久级
|
亚洲福利视频免费观看
|
中日韩美女免费视频网址在线观看
|
欧美一区二区三区四区高清
|
久久精品视频免费
|
欧美国产精品一区
|
一区二区日韩免费看
|
久久激情五月丁香伊人
|
欧美精品在线极品
|
韩国av一区二区三区
|
一区二区三区www
|
美女网站在线免费欧美精品
|
99精品99
|
欧美成人免费在线观看
|
国产欧美一区二区三区沐欲
|
亚洲国产综合在线看不卡
|
亚洲专区欧美专区
|
亚洲国产日韩欧美
|