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

   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>
            亚洲尤物在线| 欧美三区在线观看| 亚洲激情啪啪| 久久久精品999| 久久高清国产| 久久久噜噜噜久久中文字幕色伊伊 | 99视频精品| 亚洲乱码国产乱码精品精98午夜| 亚洲国产精品v| 亚洲午夜久久久| 一本大道久久a久久精二百| 99国产一区二区三精品乱码| 中日韩高清电影网| 久久精品国产99| 欧美久色视频| 国产日韩在线不卡| 亚洲经典视频在线观看| 亚洲天堂成人| 久久这里只有| 亚洲精品一区二区三区四区高清| 亚洲少妇诱惑| 久久夜色精品国产| 国产精品爱啪在线线免费观看| 国产日韩欧美自拍| 日韩午夜黄色| 久久青草久久| 亚洲天堂久久| 欧美激情黄色片| 国产一区二区高清不卡| 99re视频这里只有精品| 久久九九热免费视频| 亚洲精品久久久久久下一站 | 久色成人在线| 国产精品yjizz| 亚洲精品免费看| 欧美在线播放视频| 亚洲欧洲在线免费| 久久精品动漫| 国产精品视频免费| 一本久道久久综合狠狠爱| 久久影视三级福利片| 国产丝袜一区二区| 亚洲视屏一区| 欧美激情一区二区三区在线视频| 午夜精品久久久久久99热软件 | 国产精品女人网站| 亚洲韩国精品一区| 久久久高清一区二区三区| 9久re热视频在线精品| 模特精品在线| 在线精品一区二区| 久久久一区二区| 午夜精品一区二区在线观看 | 亚洲国产精品99久久久久久久久| 欧美一区二区三区男人的天堂 | 亚洲一区二区三区精品视频 | 国产精品成人免费精品自在线观看| 国产一区二区三区网站| 亚洲午夜在线观看| 夜夜嗨av一区二区三区| 欧美伦理视频网站| 日韩视频免费在线观看| 亚洲国产精品一区二区尤物区| 久久婷婷影院| 激情五月婷婷综合| 久久亚洲精品视频| 久久这里只有精品视频首页| 影音先锋亚洲视频| 欧美国产亚洲另类动漫| 欧美大片va欧美在线播放| 亚洲人午夜精品| 亚洲三级电影在线观看 | 欧美一级成年大片在线观看| 国产精品一区二区久久| 欧美在线观看一区二区| 欧美一区二区三区四区在线 | 欧美电影免费观看| 一本到高清视频免费精品| 一区二区激情| 国产农村妇女精品一区二区| 久久久久久久网| 理论片一区二区在线| 亚洲免费观看高清完整版在线观看熊| 亚洲破处大片| 国产欧美精品xxxx另类| 欧美大片va欧美在线播放| 欧美国产精品劲爆| 最新国产精品拍自在线播放| 欧美日韩精品伦理作品在线免费观看 | 国产日韩精品一区| 欧美成人精品在线播放| 欧美激情精品久久久六区热门| 一本色道久久88精品综合| 日韩一区二区精品| 国产在线精品一区二区夜色| 欧美国产激情| 国产农村妇女精品一区二区| 嫩草影视亚洲| 日韩天堂在线视频| 亚洲在线视频| 在线成人性视频| 亚洲美女区一区| 国产亚洲综合在线| 亚洲精品美女在线观看| 国产亚洲成年网址在线观看| 亚洲国产福利在线| 国产欧美一区二区视频| 亚洲人成人一区二区在线观看| 国产乱码精品一区二区三区av| 欧美成人综合| 国产日韩欧美三级| 99香蕉国产精品偷在线观看| 影音先锋另类| 亚洲免费视频网站| 亚洲视频网站在线观看| 美女国内精品自产拍在线播放| 欧美在线1区| 国产精品盗摄久久久| 亚洲国产合集| 亚洲国产欧美在线人成| 欧美专区在线观看一区| 亚洲欧美中文日韩在线| 欧美日韩国产限制| 亚洲国产天堂久久综合| 一区在线观看| 久久av一区二区| 国产精品综合久久久| 最新日韩欧美| 99国产一区| 欧美黑人在线观看| 亚洲第一在线综合在线| 亚洲国产日韩欧美| 牛夜精品久久久久久久99黑人| 麻豆精品精华液| 在线观看视频免费一区二区三区| 久久精彩视频| 玖玖综合伊人| 影音先锋亚洲电影| 蜜臀va亚洲va欧美va天堂| 狼人社综合社区| 精品成人在线视频| 久久综合久色欧美综合狠狠| 欧美成人免费全部| 亚洲精品中文字幕有码专区| 欧美不卡视频| 日韩午夜电影| 午夜欧美大尺度福利影院在线看| 国产精品午夜春色av| 欧美在线观看视频一区二区| 久久婷婷久久一区二区三区| 在线国产精品一区| 欧美在线观看视频一区二区三区 | 性欧美精品高清| 久久久999精品| 在线不卡视频| 毛片基地黄久久久久久天堂| 欧美风情在线| 亚洲一区国产一区| 国产拍揄自揄精品视频麻豆| 久久午夜国产精品| 亚洲精品免费看| 欧美一区观看| 亚洲国产精品女人久久久| 欧美区亚洲区| 亚洲电影在线看| 亚洲中字在线| 国产午夜精品一区理论片飘花 | 亚洲女同同性videoxma| 久久人91精品久久久久久不卡 | 国产精品一区二区三区乱码| 欧美在线观看视频一区二区三区| 亚洲大胆女人| 亚洲午夜激情| 狠狠色丁香婷婷综合| 欧美人交a欧美精品| 午夜在线播放视频欧美| 欧美激情二区三区| 欧美一区二区三区在| 亚洲国产1区| 国产精品视频你懂的| 欧美成人乱码一区二区三区| 午夜精品久久久久久99热| 亚洲激情网址| 久久久久久高潮国产精品视| av成人激情| 亚洲电影专区| 国产精品日韩在线| 欧美激情小视频| 久久久久久久综合狠狠综合| 一二三区精品福利视频| 欧美大尺度在线| 久久精品国产视频| 亚洲一区二区三区高清| 亚洲欧洲在线视频| 国精产品99永久一区一区| 欧美三区视频| 欧美精品一区二区三区蜜桃| 久久综合亚洲社区| 欧美在线欧美在线| 性色av一区二区三区在线观看 |