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

   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)

搜索

  •  

最新隨筆

最新評論

評論排行榜

一.如何將日志寫入到文件
將log信息記錄到文件應(yīng)該說是日志系統(tǒng)的一個(gè)基本功能,log4cplus在此基礎(chǔ)上,提供了更多的功能,
可以按照你預(yù)先設(shè)定的大小來決定是否轉(zhuǎn)儲,當(dāng)超過該大小,后續(xù)log信息會另存到新文件中,
依次類推;或者按照日期來決定是否轉(zhuǎn)儲。log4cplus提供了三個(gè)類用于文件操作,它們是:
FileAppender類、RollingFileAppender類、DailyRollingFileAppender類

二.FileAppender類
實(shí)現(xiàn)了基本的文件操作功能,構(gòu)造函數(shù)如下:
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,
                 因?yàn)閷?shí)際上只是對stl的一個(gè)簡單包裝,缺省是trunc,表示將先前文件刪除。
   immediateFlush :緩沖刷新標(biāo)志,如果為true表示每向文件寫一條記錄就刷新一次緩存,
                    否則直到FileAppender被關(guān)閉或文件緩存已滿才更新文件,一般是要設(shè)置true的,
                    比如你往文件寫的過程中出現(xiàn)了錯(cuò)誤(如程序非正常退出),即使文件沒有正常關(guān)閉也可以保證程序終
                    止時(shí)刻之前的所有記錄都會被正常保存。

三. RollingFileAppender類
構(gòu)造函數(shù)如下:
log4cplus::RollingFileAppender::RollingFileAppender(
           const log4cplus::tstring& filename,                                                   
           long maxFileSize,                                                   
           int maxBackupIndex,                                                   
           bool immediateFlush)
    
      filename                : 文件名
      maxFileSize          : 文件的最大尺寸
      maxBackupIndex : 最大記錄文件數(shù)
      immediateFlush    : 緩沖刷新標(biāo)志                                                   

RollingFileAppender類可以根據(jù)你預(yù)先設(shè)定的大小來決定是否轉(zhuǎn)儲,當(dāng)超過該大小,后續(xù)log信息會另存到新文件中,
除了定義每個(gè)記錄文件的大小之外,你還要確定在RollingFileAppender類對象構(gòu)造時(shí)最多需要多少個(gè)這樣的記錄文件
(maxBackupIndex+1),當(dāng)存儲的文件數(shù)目超過maxBackupIndex+1時(shí),會刪除最早生成的文件,保證整個(gè)文件數(shù)目等于
maxBackupIndex+1。然后繼續(xù)記錄,比如以下代碼片段:


          
 
#define LOOP_COUNT 200000        
 SharedAppenderPtr _append(
new RollingFileAppender("Test.log"5*10245));    
 _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<1000;i++)    {        
            NDCContextCreator _context(
"loop");        
            LOG4CPLUS_DEBUG(subTest, 
"Entering loop #" << i)   
   }
        
       

    運(yùn)行結(jié)果:運(yùn)行后會產(chǎn)生6個(gè)輸出文件,Test.log、Test.log.1、Test.log.2、Test.log.3、Test.log.4、Test.log.5
                       其中Test.log存放著最新寫入的信息,而最后一個(gè)文件中并不包含第一個(gè)寫入信息,說明已經(jīng)被不斷更新了。
                       需要指出的是,這里除了Test.log之外,每個(gè)文件的大小都是200K,而不是我們想像中的5K,
                       這是因?yàn)閘og4cplus中隱含定義了文件的最小尺寸是200K,只有大于200K的設(shè)置才生效,<= 200k的設(shè)置都會被認(rèn)為是200K.

四. DailyRollingFileAppender類
構(gòu)造函數(shù)如下:
 DailyRollingFileAppender::DailyRollingFileAppender(const log4cplus::tstring& filename,
                                                    DailyRollingFileSchedule schedule,                                                  
                                                    bool immediateFlush,                                                  
                                                    int maxBackupIndex)                                                  
       filename       : 文件名
       schedule       : 存儲頻度
       immediateFlush : 緩沖刷新標(biāo)志
       maxBackupIndex : 最大記錄文件數(shù)

DailyRollingFileAppender類可以根據(jù)你預(yù)先設(shè)定的頻度來決定是否轉(zhuǎn)儲,當(dāng)超過該頻度,
后續(xù)log信息會另存到新文件中,這里的頻度包括:
MONTHLY(每月)、WEEKLY(每周)、DAILY(每日)、TWICE_DAILY(每兩天)、HOURLY(每時(shí))、MINUTELY(每分)。
maxBackupIndex的含義同上所述,比如以下代碼片段:


          
 SharedAppenderPtr _append(
new DailyRollingFileAppender("Test.log", MINUTELY, true5));    
 _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<100;i++)    {        
             NDCContextCreator _context(
"loop");        
             LOG4CPLUS_DEBUG(subTest, 
"Entering loop #" << i)    
 }
       
 
   

  運(yùn)行結(jié)果:運(yùn)行后會以分鐘為單位,分別生成名為
  Test.log.2004-10-17-03-03、Test.log.2004-10-17-03-04和Test.log.2004-10-17-03-05這樣的文件。
  需要指出的是,剛看到按照頻度(如HOURLY、MINUTELY)轉(zhuǎn)儲這樣的概念,以為log4cplus提供了內(nèi)部定
  時(shí)器,感覺很奇怪,因?yàn)槿罩鞠到y(tǒng)不應(yīng)該主動記錄,而loging事件總是應(yīng)該被動觸發(fā)的啊。仔細(xì)看了源
  代碼后才知道這里的"頻度"并不是你寫入文件的速度,其實(shí)是否轉(zhuǎn)儲的標(biāo)準(zhǔn)并不依賴你寫入文件的速度,
  而是依賴于寫入的那一時(shí)刻是否滿足了頻度條件,即是否超過了以分鐘、小時(shí)、周、月為單位的時(shí)間刻度,
  如果超過了就另存。本部分詳細(xì)介紹log信息的幾種文件操作方式,下面將重點(diǎn)介紹一下如何有選擇地控
  制log信息的輸出。
 
 

posted on 2011-04-02 15:50 C++技術(shù)中心 閱讀(9135) 評論(0)  編輯 收藏 引用 所屬分類: 三方庫
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美国产亚洲另类动漫| 性伦欧美刺激片在线观看| 欧美日韩一区二区在线视频| 免费在线亚洲欧美| 麻豆av一区二区三区久久| 久久精品国产精品亚洲综合| 亚洲激情视频网站| 亚洲二区视频在线| 亚洲精品久久久久久下一站| 亚洲黄色有码视频| 99精品国产在热久久婷婷| 一区二区三区高清在线| 一区二区欧美激情| 午夜精品久久久久影视| 午夜精品一区二区三区电影天堂| 午夜精品久久久| 久久一日本道色综合久久| 老司机午夜精品视频| 欧美精品久久久久a| 国产精品成人国产乱一区| 国产欧亚日韩视频| 1769国内精品视频在线播放| 99热在这里有精品免费| 欧美中文字幕| 亚洲国产成人精品久久久国产成人一区 | 一本久道久久综合婷婷鲸鱼| 亚洲一区在线播放| 乱中年女人伦av一区二区| 亚洲精品乱码久久久久久| 亚洲免费在线看| 欧美成人精品在线播放| 国产婷婷色一区二区三区| 激情综合色综合久久综合| 日韩一区二区高清| 久久这里有精品视频| 9久草视频在线视频精品| 久久成人久久爱| 欧美日韩国产精品一区| 国产亚洲毛片在线| 一区二区三区免费观看| 毛片一区二区| 亚洲天天影视| 欧美 日韩 国产 一区| 国产精品免费视频xxxx| 亚洲黄色小视频| 久久精品国产一区二区三| 久久裸体视频| 亚洲一区二区三区777| 免费视频久久| 在线观看不卡av| 久久精品国产69国产精品亚洲| 亚洲国产小视频在线观看| 久久黄色网页| 亚洲国产另类久久久精品极度| 久久久国产91| 亚洲天堂av高清| 欧美激情亚洲一区| 亚洲二区免费| 久久色中文字幕| 欧美在线视频免费| 国产精品系列在线| 亚洲一区二区少妇| 99精品视频免费全部在线| 欧美成人高清| 亚洲国产精品久久久久秋霞影院 | 亚洲经典在线看| 久久久久成人精品| 黄色一区二区在线| 免费成人在线观看视频| 久久久久久久91| 亚洲国产一区二区三区a毛片| 欧美激情影院| 欧美全黄视频| 亚洲综合社区| 欧美亚洲日本国产| 在线观看日韩| 亚洲精品视频一区| 国产精品免费视频观看| 久久欧美肥婆一二区| 欧美18av| 亚洲午夜国产成人av电影男同| 一本色道久久精品| 国产日韩一区| 亚洲高清自拍| 欧美色欧美亚洲另类七区| 欧美一二三视频| 久久亚洲一区| 亚洲男人天堂2024| 久久精品国产第一区二区三区| 亚洲大片免费看| 一本久道久久综合婷婷鲸鱼| 国产精品乱码人人做人人爱| 欧美一级片久久久久久久| 欧美一区二区私人影院日本 | 亚洲黄网站在线观看| 亚洲精品中文字幕有码专区| 欧美激情一区二区三区不卡| 亚洲国产精品毛片| 亚洲国产另类精品专区| 国产日韩一区| 老司机精品视频网站| 久久综合精品国产一区二区三区| 一区二区亚洲精品| 香蕉久久夜色| 欧美韩国日本一区| 国产日韩欧美一区二区| 激情小说亚洲一区| 毛片av中文字幕一区二区| 欧美不卡视频一区发布| 亚洲福利在线看| 亚洲精选成人| 国产精品视频yy9099| 亚洲国产成人在线播放| 欧美日韩精品中文字幕| 亚洲制服av| 久久黄金**| 亚洲一区二区黄色| 性久久久久久久久久久久| 在线成人黄色| 99re6这里只有精品视频在线观看| 国产午夜精品久久久久久免费视| 美女诱惑一区| 欧美色视频一区| 久久精品人人爽| 久久久蜜桃精品| 亚洲一区二区视频在线观看| 久久福利毛片| 亚洲影音一区| 久久精品日产第一区二区三区 | 亚洲视频网在线直播| 欧美有码视频| 一区二区三区导航| 欧美大片在线看| 久久精品视频在线| 欧美日产在线观看| 另类酷文…触手系列精品集v1小说| 欧美激情va永久在线播放| 久久久久九九九| 国产精品www994| 亚洲三级电影在线观看 | 亚洲高清毛片| 性欧美暴力猛交69hd| 99国产精品视频免费观看一公开| 欧美在线视频观看免费网站| 麻豆精品91| 国产午夜精品视频| 一本大道久久a久久精二百| 亚洲国产高清在线观看视频| 免费成人网www| 老鸭窝毛片一区二区三区| 国产精自产拍久久久久久| 亚洲欧洲偷拍精品| 亚洲午夜三级在线| 欧美日韩的一区二区| 亚洲国产精品久久久久婷婷884| 黄色精品免费| 欧美成人免费在线| 欧美国产免费| 亚洲欧洲午夜| 美国成人直播| av不卡在线观看| 亚洲无毛电影| 欧美涩涩网站| 欧美91大片| 亚洲一区网站| 国产精品美女一区二区在线观看| 一区二区免费在线视频| 欧美激情成人在线| 亚洲一区二区在线观看视频| 欧美好骚综合网| 一区二区三区欧美日韩| 欧美高清视频一区二区三区在线观看| 久久久精品国产免大香伊| 亚洲欧美一区二区三区久久| 美女国内精品自产拍在线播放| 国产精品成人免费精品自在线观看| a4yy欧美一区二区三区| 国产精品夜色7777狼人| 老司机免费视频一区二区| 亚洲欧洲一二三| 亚洲制服av| 亚洲精品专区| 欧美吻胸吃奶大尺度电影| 亚洲一二三四久久| 久久久一区二区| 亚洲欧美日韩国产综合在线| 国产欧美日韩综合一区在线观看 | 羞羞漫画18久久大片| 国产女精品视频网站免费| 欧美一区二区高清在线观看| 亚洲老司机av| 久久成年人视频| 亚洲电影第1页| 久久美女性网| 午夜精品www| 欧美成人国产va精品日本一级| 亚洲精品日本| 欧美日韩一区二区三区| 欧美在线播放一区| 亚洲精品欧美一区二区三区|