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

飄雪

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  31 Posts :: 0 Stories :: 60 Comments :: 0 Trackbacks
    改進log4c的時間戳結構:

    log4c里對于事件時間戳的定義是這樣的:
1 #ifndef _WIN32
2     struct timeval evt_timestamp;
3 #else
4     FILETIME evt_timestamp;
5 #endif
   
    這個不用說是很惡了,存的是各個平臺的api得到的原始時間,格式化的時候還要按不同平臺寫不同的格式化代碼,而我們輸出日志的時候通常是按年月日時分秒的結構來輸出,存一個通用的結構更好,time.h里就有一個比較好的結構struct tm, 可以使用gmtime或localtime來得到。

 1 struct tm {
 2         int tm_sec;     /* seconds after the minute - [0,59] */
 3         int tm_min;     /* minutes after the hour - [0,59] */
 4         int tm_hour;    /* hours since midnight - [0,23] */
 5         int tm_mday;    /* day of the month - [1,31] */
 6         int tm_mon;     /* months since January - [0,11] */
 7         int tm_year;    /* years since 1900 */
 8         int tm_wday;    /* days since Sunday - [0,6] */
 9         int tm_yday;    /* days since January 1 - [0,365] */
10         int tm_isdst;   /* daylight savings time flag */
11         };

    時間精確到秒,而且可惜的是,這些函數(shù)的跨平臺性不夠好,windows ce上就沒有,所以定義一個通用的時間結構如下:

 1 typedef struct 
 2 {
 3     int tm_milli;   /* millisecond - [0,999] */
 4     int tm_sec;     /* seconds after the minute - [0,59] */
 5     int tm_min;     /* minutes after the hour - [0,59] */
 6     int tm_hour;    /* hours since midnight - [0,23] */
 7     int tm_mday;    /* day of the month - [1,31] */
 8     int tm_mon;     /* months since January - [0,11] */
 9     int tm_year;    /* years since 1900 */
10     int tm_wday;    /* days since Sunday - [0,6] */
11     int tm_yday;    /* days since January 1 - [0,365] */
12 } log4c_common_time_t;

    跟struct tm相比,增加了一個tm_milli,因為依賴平臺相關api的話,可以取到更精確的時間。這樣輸出的時候把它的fields格式化就可以了。

    接下來就是取當前時間戳的函數(shù)來,跟平臺相關,支持struct tm,localtime的版本如下,精度為秒:

 1 void xp_gettimeofday(log4c_common_time_t* p,void* reserve)
 2 {
 3     struct tm tm;
 4     time_t t = time(0);
 5     tm = *localtime(&t);
 6 
 7     p->tm_hour    = tm.tm_hour;
 8     p->tm_isdst   = tm.tm_isdst;
 9     p->tm_mday    = tm.tm_mday;
10     p->tm_milli   = 0;
11     p->tm_min     = tm.tm_min;
12     p->tm_mon     = tm.tm_mon;
13     p->tm_sec     = tm.tm_sec;
14     p->tm_wday    = tm.tm_wday;
15     p->tm_yday    = tm.tm_yday;
16     p->tm_year    = tm.tm_year + 1900;
17 }

    Windows CE使用的版本如下,精度為毫秒,當然windows也可以使用:

 1 void xp_gettimeofday(log4c_common_time_t* p)
 2 {
 3     SYSTEMTIME time;
 4     GetSystemTime(&time);
 5     p->tm_milli    = time.wMilliseconds;
 6     p->tm_sec    = time.wSecond;
 7     p->tm_min    = time.wMinute;
 8     p->tm_hour    = time.wHour;
 9     p->tm_mday    = time.wDay;
10     p->tm_mon    = time.wMonth;
11     p->tm_wday    = time.wDayOfWeek;
12     p->tm_year    = time.wYear;
13 }


posted on 2009-01-05 11:32 飄雪 閱讀(1478) 評論(1)  編輯 收藏 引用

Feedback

# re: 改進log4c(2) 2009-01-05 17:19 洪松
學習了,謝謝  回復  更多評論
  


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合色8888| 久久九九99视频| 亚洲午夜性刺激影院| 久久综合激情| 国产伦精品一区二区三区视频孕妇 | 999亚洲国产精| 麻豆成人91精品二区三区| 亚洲一区二区三区激情| 欧美激情1区2区| 亚洲激情亚洲| 亚洲电影av| 快射av在线播放一区| 国产日韩精品一区| 欧美一级大片在线免费观看| 亚洲伦伦在线| 国产精品v欧美精品v日韩精品| 一区二区三区免费在线观看| 亚洲激情一区二区| 欧美日韩国产限制| 亚洲一区二区三区影院| 日韩亚洲欧美高清| 欧美日韩国产综合久久| 亚洲桃色在线一区| 午夜精品三级视频福利| 国产一区在线看| 欧美gay视频激情| 欧美激情国产精品| 欧美日韩在线不卡| 午夜伦理片一区| 欧美一区成人| 亚洲精品乱码久久久久久按摩观 | 久久人91精品久久久久久不卡 | 欧美视频在线观看一区二区| 中文精品视频一区二区在线观看| 99re这里只有精品6| 国产精品入口66mio| 欧美va亚洲va日韩∨a综合色| 男人天堂欧美日韩| 欧美激情亚洲自拍| 久久成人在线| 国产精品久久久一区二区三区| 国产精品v一区二区三区| 在线观看亚洲a| 亚洲一区二区高清| 免费日韩av| 亚洲精一区二区三区| 亚洲一区精品在线| 日韩视频一区| 亚洲乱码日产精品bd| 亚洲在线一区二区三区| 欧美精品在线看| 亚洲国产精品成人| 欧美高清视频一区二区三区在线观看| 伊人久久大香线蕉综合热线| 老司机午夜精品视频| 99re热精品| 另类人畜视频在线| 欧美中文字幕第一页| 欧美交受高潮1| 欧美激情视频在线免费观看 欧美视频免费一| 欧美绝品在线观看成人午夜影视 | 久久精品一区二区三区四区| 国内精品久久久久久久影视蜜臀| 久久一综合视频| 夜夜嗨av一区二区三区| av成人免费在线观看| 亚洲福利国产| 久久成人一区二区| 国产精品狠色婷| 亚洲欧洲一区二区三区在线观看| 国产综合色在线| 欧美一区影院| 久久午夜视频| 影院欧美亚洲| 欧美69wwwcom| 亚洲国产精品福利| 亚洲精一区二区三区| 欧美激情一区二区在线 | 依依成人综合视频| 久久精品夜夜夜夜久久| 久久精品99国产精品| 在线精品国产欧美| 乱人伦精品视频在线观看| 亚洲激情女人| 亚洲网友自拍| 国产视频丨精品|在线观看| 欧美影院成年免费版| 欧美成人69av| 一区二区三区日韩| 国内视频一区| 欧美乱大交xxxxx| 性高湖久久久久久久久| 亚洲福利在线观看| 亚洲欧美日韩一区二区三区在线| 国产一区二区三区无遮挡| 欧美xxxx在线观看| 欧美亚洲三级| 亚洲青涩在线| 久热精品在线| 亚洲午夜av电影| 亚洲人成在线免费观看| 国产一区二区在线观看免费| 欧美日韩美女| 蜜臀av性久久久久蜜臀aⅴ| 亚洲欧美日韩国产一区| 最新国产の精品合集bt伙计| 久热这里只精品99re8久| 亚洲欧美激情视频| 日韩视频在线一区| 亚洲第一精品夜夜躁人人爽| 国产精品wwwwww| 欧美视频二区36p| 欧美日韩国产成人| 欧美精品久久一区二区| 免费短视频成人日韩| 久久久精品国产99久久精品芒果| 欧美一级淫片aaaaaaa视频| 亚洲巨乳在线| aa级大片欧美三级| 亚洲肉体裸体xxxx137| 亚洲二区视频在线| 在线观看中文字幕不卡| 亚洲国产乱码最新视频| 在线成人www免费观看视频| 经典三级久久| 亚洲国产精品精华液网站| 亚洲人永久免费| av不卡在线| 午夜精品视频在线观看一区二区| 亚洲在线观看视频网站| 亚洲婷婷免费| 欧美专区在线播放| 久久综合网络一区二区| 欧美激情一区二区三区在线| 亚洲人久久久| 午夜一区不卡| 你懂的视频一区二区| 国产精品久久久久久久久动漫| 国产精品腿扒开做爽爽爽挤奶网站 | 午夜免费久久久久| 欧美一区二区精美| 欧美高清在线视频| 国产精品久久国产三级国电话系列| 国产免费成人在线视频| 亚洲精品视频一区二区三区| 亚洲资源在线观看| 欧美成人一区二区三区在线观看| 亚洲欧洲日本在线| 欧美一区日韩一区| 欧美日韩在线播放一区| 国内久久精品视频| 午夜精品在线看| 欧美韩日一区| 久久国产99| 国产精品视频99| 一区二区国产在线观看| 农夫在线精品视频免费观看| 亚洲一区精品在线| 欧美日韩一区二区三区四区五区| 一区二区在线不卡| 欧美在线观看你懂的| 夜夜嗨av一区二区三区四季av| 久久久久久久999| 国产日韩视频| 欧美一区二区日韩一区二区| 99热在这里有精品免费| 欧美久久九九| 国产伦精品一区二区三| 在线成人激情| 国内精品久久久| 亚洲精品影视在线观看| 黄色精品一区| 美女91精品| 欧美国产另类| 一区二区三区国产精华| 日韩一区二区精品葵司在线| 欧美视频在线观看| 久久国内精品自在自线400部| 亚洲一区欧美激情| 国内精品久久久久影院色| 老司机亚洲精品| 欧美精品一区二区三区蜜桃| 一区二区三区|亚洲午夜| 亚洲欧美日韩成人| 亚洲国产美女精品久久久久∴| 亚洲日韩第九十九页| 国产精品天美传媒入口| 欧美成人午夜激情在线| 欧美视频在线观看一区二区| 久久久国产精彩视频美女艺术照福利| 久久国产精品72免费观看| 99精品视频免费观看视频| 欧美激情一区| 美女久久网站| 国产精品毛片| 亚洲女人天堂成人av在线| 亚洲精品视频在线| 久久中文字幕导航| 国产主播精品| 久久精品夜色噜噜亚洲aⅴ|