青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

開源日志系統log4cplus(四)

將log信息記錄到文件應該說是日志系統的一個基本功能,log4cplus在此基礎上,提供了更多的功能,可以按照你預先設定的大小來決定是否轉儲,當超過該大小,后續log信息會另存到新文件中,依次類推;或者按照日期來決定是否轉儲。本文將詳細介紹這些用法。


				
### 如何將log記錄到文件 ###
我們在例5中給出了一個將log記錄到文件的例子,用的是FileAppender類實現的,log4cplus提供了三個類用于
文件操作,它們是FileAppender類、RollingFileAppender類、DailyRollingFileAppender類。
1. FileAppender類
實現了基本的文件操作功能,構造函數如下:
FileAppender(const log4cplus::tstring& filename,
???????????????????? LOG4CPLUS_OPEN_MODE_TYPE mode = LOG4CPLUS_FSTREAM_NAMESPACE::ios::trunc,
???????????????????? bool immediateFlush = true);
????????????????????
filename?????? : 文件名
mode?????????? : 文件類型,可選擇的文件類型包括app、ate、binary、in、out、trunc,因為實際上只是對
???????????????? stl的一個簡單包裝,呵呵,這里就不多講了。缺省是trunc,表示將先前文件刪除。
immediateFlush :緩沖刷新標志,如果為true表示每向文件寫一條記錄就刷新一次緩存,否則直到FileAppender
???????????????? 被關閉或文件緩存已滿才更新文件,一般是要設置true的,比如你往文件寫的過程中出現
???????????????? 了錯誤(如程序非正常退出),即使文件沒有正常關閉也可以保證程序終止時刻之前的所有
???????????????? 記錄都會被正常保存。
FileAppender類的使用情況請參考例5,這里不再贅述。
				
2. RollingFileAppender類
構造函數如下:
log4cplus::RollingFileAppender::RollingFileAppender(const log4cplus::tstring& filename,
??????????????????????????????????????????????????? long maxFileSize,
??????????????????????????????????????????????????? int maxBackupIndex,
??????????????????????????????????????????????????? bool immediateFlush)
filename?????? : 文件名
maxFileSize??? : 文件的最大尺寸
maxBackupIndex : 最大記錄文件數
immediateFlush : 緩沖刷新標志
???????????????????????????????????????????????????
RollingFileAppender類可以根據你預先設定的大小來決定是否轉儲,當超過該大小,后續log信息會另存到新
文件中,除了定義每個記錄文件的大小之外,你還要確定在RollingFileAppender類對象構造時最多需要多少個
這樣的記錄文件(maxBackupIndex+1),當存儲的文件數目超過maxBackupIndex+1時,會刪除最早生成的文件,
保證整個文件數目等于maxBackupIndex+1。然后繼續記錄,比如以下代碼片段:
??? ... ...
???
??? #define LOOP_COUNT 200000
???
??? SharedAppenderPtr _append(new RollingFileAppender("Test.log", 5*1024, 5));
??? _append->setName("file test");
??? _append->setLayout( std::auto_ptr(new TTCCLayout()) );
??? Logger::getRoot().addAppender(_append);
??? Logger root = Logger::getRoot();
??? Logger test = Logger::getInstance("test");
??? Logger subTest = Logger::getInstance("test.subtest");
??? for(int i=0; i??? {
??????? NDCContextCreator _context("loop");
??????? LOG4CPLUS_DEBUG(subTest, "Entering loop #" << i)
??? }
???
??? ... ...
???
運行結果:
運行后會產生6個輸出文件,Test.log、Test.log.1、Test.log.2、Test.log.3、Test.log.4、Test.log.5
其中Test.log存放著最新寫入的信息,而最后一個文件中并不包含第一個寫入信息,說明已經被不斷更新了。
需要指出的是,這里除了Test.log之外,每個文件的大小都是200K,而不是我們想像中的5K,這是因為
log4cplus中隱含定義了文件的最小尺寸是200K,只有大于200K的設置才生效,<= 200k的設置都會被認為是
200K.
				
3. DailyRollingFileAppender類
構造函數如下:
DailyRollingFileAppender::DailyRollingFileAppender(const log4cplus::tstring& filename,
?????????????????????????????????????????????????? DailyRollingFileSchedule schedule,
?????????????????????????????????????????????????? bool immediateFlush,
?????????????????????????????????????????????????? int maxBackupIndex)
??????????????????????????????????????????????????
filename?????? : 文件名
schedule?????? : 存儲頻度
immediateFlush : 緩沖刷新標志
maxBackupIndex : 最大記錄文件數
DailyRollingFileAppender類可以根據你預先設定的頻度來決定是否轉儲,當超過該頻度,后續log信息會另存
到新文件中,這里的頻度包括:MONTHLY(每月)、WEEKLY(每周)、DAILY(每日)、TWICE_DAILY(每兩天)、
HOURLY(每時)、MINUTELY(每分)。maxBackupIndex的含義同上所述,比如以下代碼片段:
??? ... ...
???
??? SharedAppenderPtr _append(new DailyRollingFileAppender("Test.log", MINUTELY, true, 5));
??? _append->setName("file test");
??? _append->setLayout( std::auto_ptr(new TTCCLayout()) );
??? Logger::getRoot().addAppender(_append);
??? Logger root = Logger::getRoot();
??? Logger test = Logger::getInstance("test");
??? Logger subTest = Logger::getInstance("test.subtest");
??? for(int i=0; i??? {
??????? NDCContextCreator _context("loop");
??????? LOG4CPLUS_DEBUG(subTest, "Entering loop #" << i)
??? }
???
??? ... ...
				
運行結果:
運行后會以分鐘為單位,分別生成名為Test.log.2004-10-17-03-03、Test.log.2004-10-17-03-04和
Test.log.2004-10-17-03-05這樣的文件。
需要指出的是,剛看到按照頻度(如HOURLY、MINUTELY)轉儲這樣的概念,以為log4cplus提供了內部定時器,
感覺很奇怪,因為日志系統不應該主動記錄,而loging事件總是應該被動觸發的啊。仔細看了源代碼后才知道
這里的"頻度"并不是你寫入文件的速度,其實是否轉儲的標準并不依賴你寫入文件的速度,而是依賴于寫入
的那一時刻是否滿足了頻度條件,即是否超過了以分鐘、小時、周、月為單位的時間刻度,如果超過了就另存。
本部分詳細介紹log信息的幾種文件操作方式,下面將重點介紹一下如何有選擇地控制log信息的輸出。

posted on 2006-08-26 04:50 楊粼波 閱讀(4638) 評論(0)  編輯 收藏 引用 所屬分類: Windows編程Linux編程

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区在线看| 香蕉久久夜色| 免费久久久一本精品久久区| 99视频超级精品| 午夜激情久久久| 国产午夜精品美女视频明星a级| 欧美日韩精品一区二区天天拍小说| 美日韩免费视频| 欧美成人激情视频免费观看| 久久久久久一区二区| 久久久噜噜噜久久久| 亚洲激情女人| 欧美aⅴ99久久黑人专区| 99日韩精品| 国产精品区一区二区三区| 欧美日韩午夜视频在线观看| 欧美专区在线| 亚洲国内高清视频| 日韩视频免费观看| 亚洲男人av电影| 久久嫩草精品久久久久| 欧美激情综合在线| 久久精品一二三| 女女同性精品视频| 欧美色综合网| 国产自产v一区二区三区c| 欧美日韩国产综合视频在线| 国产精品福利久久久| 欧美成人免费全部| 欧美午夜久久| 欧美高清一区二区| 欧美一区二视频| 乱码第一页成人| 国产精品高潮呻吟| 亚洲国产成人高清精品| 亚洲欧美一区二区三区久久| 欧美成人首页| 久热精品视频在线观看| 91久久精品日日躁夜夜躁欧美| 亚洲一区在线观看视频 | 欧美一区二区在线免费观看| 欧美国产91| 一区二区国产精品| 亚洲电影有码| 国产精品青草久久久久福利99| 国产亚洲美州欧州综合国| 亚洲欧洲综合| 亚洲激情黄色| 久久国产毛片| 久久精品系列| 日韩视频一区| 免费在线欧美黄色| 久久婷婷国产综合尤物精品 | 99视频在线观看一区三区| 久久一区二区三区国产精品| 欧美一区亚洲| 欧美调教vk| 国产伦精品一区二区三区在线观看 | 黄色一区三区| 欧美在线视频免费| 中文av一区特黄| 欧美日韩一区二区三区在线看| 欧美高清在线| 亚洲国产精品va在线观看黑人| 久久国产精品一区二区| 亚洲一区日本| 国产精品综合网站| 小黄鸭视频精品导航| 久久精品亚洲一区二区三区浴池| 亚洲精品在线免费| 亚洲欧美日韩一区二区在线| 亚洲欧美国产一区二区三区| 欧美裸体一区二区三区| 99成人在线| 亚洲最快最全在线视频| 午夜精品久久久久久久久久久久 | 国产亚洲网站| 亚洲国产三级| 一区二区三区国产盗摄| 欧美激情第9页| 欧美精品久久一区二区| 99精品国产福利在线观看免费| 亚洲免费综合| 中日韩美女免费视频网站在线观看| 欧美日韩精品是欧美日韩精品| 一区二区三区精品国产| 亚洲一区二区在线免费观看视频| 国产日本精品| 欧美成人午夜激情视频| 亚洲精品美女在线| 亚洲无限乱码一二三四麻| 另类欧美日韩国产在线| 国产香蕉久久精品综合网| 欧美一级专区| 久久理论片午夜琪琪电影网| 欧美一区二区精美| 最近看过的日韩成人| 欧美一区二区三区视频在线| 午夜精品久久久| 欧美日韩免费一区二区三区| 在线午夜精品| 久久夜色精品国产欧美乱极品| 在线视频日韩| 久久免费的精品国产v∧| 国产免费成人在线视频| 国产在线观看精品一区二区三区| 一区二区欧美亚洲| 欧美国产一区二区三区激情无套| 欧美日韩亚洲视频一区| 免费精品视频| 久久青草久久| 亚洲一区二区三区乱码aⅴ| 亚洲精品1234| 久久免费国产| 欧美一区二区精品久久911| 亚洲视频国产视频| 欧美午夜精品理论片a级按摩| 久久九九免费视频| 国产精品高潮呻吟视频| 亚洲丝袜av一区| 久久久亚洲高清| 久久精品国产精品亚洲综合| 欧美久久久久| 亚洲国产一区二区三区a毛片| 日韩午夜剧场| 亚洲欧洲在线观看| 亚洲无限av看| 亚洲一区二区三区中文字幕在线| 另类欧美日韩国产在线| 欧美日韩国产不卡| 久久一区二区三区国产精品| 国产欧美三级| 亚洲欧美成人一区二区三区| 欧美一区二区三区啪啪| 国产日韩精品在线播放| 亚洲福利视频在线| 欧美 日韩 国产一区二区在线视频 | 欧美不卡视频一区| 在线观看一区二区视频| 欧美主播一区二区三区美女 久久精品人 | 久久久久国产精品人| 亚洲国产日韩欧美| 最新亚洲一区| 久久一区二区视频| 先锋影音网一区二区| 国产精品成人免费视频| 玖玖玖国产精品| 欧美视频1区| 亚洲综合不卡| 一区二区三区不卡视频在线观看| 欧美成人乱码一区二区三区| 久久精品一区四区| 国产精品视频你懂的| 久久久国际精品| 亚洲综合色丁香婷婷六月图片| 亚洲精品久久久久| 欧美18av| 欧美激情综合| 欧美日韩国产限制| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美一级片一区| 亚洲国产另类久久精品| 亚欧成人精品| 亚洲国产成人久久综合一区| 亚洲欧美成人一区二区三区| 亚洲一区二区影院| 亚洲资源av| 亚洲综合色视频| 亚洲欧洲日韩女同| 亚洲日本电影在线| 亚洲一区图片| 在线成人中文字幕| 91久久夜色精品国产九色| 亚洲另类在线视频| 国产精品私拍pans大尺度在线| 久久福利视频导航| 国产亚洲欧洲| 欧美剧在线免费观看网站| 亚洲精品一区二区在线| 国产一区二区主播在线| 久久久精品日韩欧美| 亚洲成色777777女色窝| 国产中文一区二区三区| 欧美精品日韩一本| 亚洲一区二区三区精品在线 | 久久久久久久国产| 夜夜精品视频| 性欧美激情精品| 亚洲美女av电影| 亚洲一区二区在线免费观看视频 | 亚洲一区二区三区国产| 久久精品国产69国产精品亚洲| 亚洲丰满少妇videoshd| 欧美日韩久久精品| 免费一级欧美在线大片| 亚洲经典在线看| 欧美午夜精品久久久久久孕妇| 欧美成人免费网| 中文av一区二区| 伊人成人网在线看|