日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Google-glog 日志库使用手记

發(fā)布時(shí)間:2025/3/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Google-glog 日志库使用手记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:高張遠(yuǎn)矚(HiLoveS)

博客:http://www.cnblogs.com/hiloves/

轉(zhuǎn)載請(qǐng)保留該信息

?

Google Glog 是一個(gè)C++語(yǔ)言的應(yīng)用級(jí)日志記錄框架,提供了 C++ 風(fēng)格的流操作和各種助手宏。試用了一下,感覺(jué)不錯(cuò),試用過(guò)程出了不少插曲。

1、開(kāi)源項(xiàng)目首頁(yè)已經(jīng)從https://code.google.com/p/google-glog/遷移到https://github.com/google/glog。當(dāng)前主版本是0.3.4。

2、下載代碼后,雙擊根目錄下的google-glog.sln,Visual Studio 2015提示先進(jìn)行遷移,成功后就可以編譯了。

3、在解決方案下有四個(gè)工程:libglog(是動(dòng)態(tài)鏈接庫(kù)工程,生成libglog.dll和libglog.lib),libglog_static(是靜態(tài)庫(kù)工程,生成libglog_static.lib,運(yùn)行時(shí)不需要libglog.dll),logging_unittest和logging_unittest_static是相應(yīng)的測(cè)試工程。

4、不需要更改工程屬性。平臺(tái)工具集是否是Windows XP(v140_xp)好像并不影響。Glog不支持Unicode寬字符集,工程屬性字符集保持多字節(jié)字符集。“C/C++”-“代碼生成”中的“運(yùn)行庫(kù)”,libglog動(dòng)態(tài)庫(kù)工程必須選擇“多線程DLL”或“多線程調(diào)試DLL”,libglog_static靜態(tài)庫(kù)工程必須選擇“多線程”或“多線程調(diào)試”。

5、按需要編譯庫(kù)。以靜態(tài)庫(kù)為例,動(dòng)態(tài)庫(kù)多一步將libglog.dll拷貝到程序目錄下。分別編譯Debug和Release,將Debug版的重命名為libglog_static_d.lib。將編譯的lib文件拷貝到根目錄\src\glog下,\src\glog是頭文件目錄。這個(gè)版本的靜態(tài)庫(kù)在試用時(shí)并未發(fā)現(xiàn)有內(nèi)存泄露問(wèn)題。

6、將\glog目錄(包括了頭文件和庫(kù)文件)拷貝到自己的工程目錄下。也可以新建另外的庫(kù)目錄,也可以在工程屬性的附加目錄中增加相應(yīng)目錄,這里采用在代碼文件中控制。在工程資源管理器中添加glog頭文件,如果先添加glog目錄再添加頭文件會(huì)提示glog頭文件中的#include路徑出錯(cuò),手動(dòng)刪除路徑中的“glog\”可解決。

7、在需要的地方#include "glog/logging.h"。建議添加到stdafx.h中。?

8、使用靜態(tài)庫(kù)必須添加#define GOOGLE_GLOG_DLL_DECL。動(dòng)態(tài)庫(kù)不必添加。

9、因windows.h中定義的宏ERROR,與glog中定義的宏ERROR沖突,所以如果#include <windows.h>后要添加#define GLOG_NO_ABBREVIATED_SEVERITIES,并且代碼中要用google::GLOG_ERROR來(lái)代替原來(lái)的google::ERROR,相應(yīng)的其他也改為:GLOG_INFO、GLOG_WARNING、GLOG_FATAL。

10、添加庫(kù)文件:#pragma comment(lib,"glog/libglog_static.lib")。針對(duì)Debug和Release版,用#ifdef控制。

1 #define GOOGLE_GLOG_DLL_DECL 2 #define GLOG_NO_ABBREVIATED_SEVERITIES 3 #include "glog/logging.h" 4 5 #ifdef DEBUG 6 #pragma comment(lib,"glog/libglog_static_d.lib") 7 #else 8 #pragma comment(lib,"glog/libglog_static.lib") 9 #endif // DEBUG


11、自己的工程使用靜態(tài)庫(kù)時(shí),必須選擇“多線程”或“多線程調(diào)試”。使用動(dòng)態(tài)庫(kù)則選擇“多線程DLL”或“多線程調(diào)試DLL”。

12、使用glog之前必須先初始化庫(kù),要生成日志文件只需在開(kāi)始log之前調(diào)用一次:

google::InitGoogleLogging(argv[0]); //括號(hào)內(nèi)是程序名

當(dāng)要結(jié)束glog時(shí)必須關(guān)閉庫(kù),否則會(huì)內(nèi)存溢出:

google::ShutdownGoogleLogging();

13、設(shè)置日志文件保存目錄,這個(gè)目錄必須是已經(jīng)存在的,否則不能生成日志文件。必須在初始化庫(kù)之前調(diào)用。

FLAGS_log_dir = "c:\\Logs";

14、GLOG 有四個(gè)錯(cuò)誤級(jí)別,枚舉如下:

enum SeverityLevel {google::INFO = 0,google::WARNING = 1,google::ERROR = 2,google::FATAL = 3, };

15、輸出日志:

LOG(INFO) << "info test"; //輸出一個(gè)Info日志 LOG(WARNING) << "warning test"; //輸出一個(gè)Warning日志 LOG(ERROR) << "error test"; //輸出一個(gè)Error日志 LOG(FATAL) << "fatal test"; //輸出一個(gè)Fatal日志,這是最嚴(yán)重的日志并且輸出之后會(huì)中止程序

16、條件輸出:

LOG_IF(INFO, num_cookies > 10) << "Got lots of cookies"; //當(dāng)條件滿足時(shí)輸出日志 LOG_EVERY_N(INFO, 10) << "Got the " << google::COUNTER << "th cookie"; //google::COUNTER 記錄該語(yǔ)句被執(zhí)行次數(shù),從1開(kāi)始,在第一次運(yùn)行輸出日志之后,每隔 10 次再輸出一次日志信息 LOG_IF_EVERY_N(INFO, (size > 1024), 10) << "Got the " << google::COUNTER << "th big cookie"; //上述兩者的結(jié)合,不過(guò)要注意,是先每隔 10 次去判斷條件是否滿足,如果滯則輸出日志;而不是當(dāng)滿足某條件的情況下,每隔 10 次輸出一次日志信息 LOG_FIRST_N(INFO, 20) << "Got the " << google::COUNTER << "th cookie"; //當(dāng)此語(yǔ)句執(zhí)行的前 20 次都輸出日志,然后不再輸出

17、幾個(gè)函數(shù):

google::SetLogDestination(google::GLOG_INFO, "log/prefix_"); //設(shè)置特定嚴(yán)重級(jí)別的日志的輸出目錄和前綴。第一個(gè)參數(shù)為日志級(jí)別,第二個(gè)參數(shù)表示輸出目錄及日志文件名前綴 google::SetLogFilenameExtension("logExtension"); //在日志文件名中級(jí)別后添加一個(gè)擴(kuò)展名。適用于所有嚴(yán)重級(jí)別 google::SetStderrLogging(google::GLOG_INFO); //大于指定級(jí)別的日志都輸出到標(biāo)準(zhǔn)輸出

18、幾個(gè)參數(shù)設(shè)置:

FLAGS_logtostderr = true; //設(shè)置日志消息是否轉(zhuǎn)到標(biāo)準(zhǔn)輸出而不是日志文件 FLAGS_alsologtostderr = true; //設(shè)置日志消息除了日志文件之外是否去標(biāo)準(zhǔn)輸出 FLAGS_colorlogtostderr = true; //設(shè)置記錄到標(biāo)準(zhǔn)輸出的顏色消息(如果終端支持) FLAGS_log_prefix = true; //設(shè)置日志前綴是否應(yīng)該添加到每行輸出 FLAGS_logbufsecs = 0; //設(shè)置可以緩沖日志的最大秒數(shù),0指實(shí)時(shí)輸出 FLAGS_max_log_size = 10; //設(shè)置最大日志文件大小(以MB為單位) FLAGS_stop_logging_if_full_disk = true; //設(shè)置是否在磁盤(pán)已滿時(shí)避免日志記錄到磁盤(pán)

?19、例子:

// Start google log system: FLAGS_log_dir = "c:\\Logs"; google::InitGoogleLogging(argv[0]); google::SetLogDestination(google::GLOG_INFO, "c:\\Logs\\INFO_"); google::SetStderrLogging(google::GLOG_INFO); google::SetLogFilenameExtension("log_"); FLAGS_colorlogtostderr = true; // Set log color FLAGS_logbufsecs = 0; // Set log output speed(s) FLAGS_max_log_size = 1024; // Set max log file size FLAGS_stop_logging_if_full_disk = true; // If disk is full char str[20] = "hello log!"; LOG(INFO) << str;
CStringA cStr = "hello google!";
LOG(INFO) << cStr; LOG(INFO)
<< "info test" << "hello log!"; //輸出一個(gè)Info日志 LOG(WARNING) << "warning test"; //輸出一個(gè)Warning日志 LOG(ERROR) << "error test"; //輸出一個(gè)Error日志 google::ShutdownGoogleLogging();

?

轉(zhuǎn)載于:https://www.cnblogs.com/hiloves/p/6009707.html

總結(jié)

以上是生活随笔為你收集整理的Google-glog 日志库使用手记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕在线三区 | 999热精品 | 永久精品 | www.黄色国产 | 日韩永久免费 | 日韩久久久久久久久久 | 久久亚洲AV成人无码国产人妖 | 久久精品视屏 | 欧美日韩一区二区三区四区五区 | 日韩专区av | 特极毛片| 在办公室被c到呻吟的动态图 | 人人九九精 | 成人免费av在线 | 亚洲色图欧美日韩 | 亚洲一区在线视频观看 | 欧美综合一区二区 | 在线免费观看中文字幕 | 精品国产不卡 | 国产成人毛片 | 欧美大片高清免费观看 | 成人网免费视频 | 在线观看av片| xxxx视频在线观看 | 成人国产精品久久久 | 日韩精品一区二区三区无码专区 | 老司机午夜免费精品视频 | 少妇性l交大片免潘金莲 | 国产精品男女 | 国产精品成人一区二区 | 久久97精品久久久久久久不卡 | 久久99精品国产.久久久久久 | 网址在线观看你懂的 | 五月激情网站 | 欧美少妇网 | 日韩在线视频免费 | 无码人妻精品一区二区50 | 日韩精品视频在线 | 久久久一区二区三区四区 | 欧洲-级毛片内射 | 国产日日夜夜 | 高h文在线 | 2019天天操 | 一本一道无码中文字幕精品热 | 女同性做受全过程动图 | 激情欧美一区二区免费视频 | 婷婷亚洲五月 | 午夜网页 | 天天干天天摸 | 亚洲红桃视频 | 内射一区二区 | 中出精品| 国产精品高清无码在线观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 欧美一区二区三区在线免费观看 | 一区二区三区免费高清视频 | 国产情侣自拍小视频 | 女生下面流水视频 | 熟妇人妻一区二区三区四区 | 亚洲综合网在线观看 | 一级大片在线观看 | 超碰97免费在线 | 欧美日韩在线中文字幕 | av 日韩 人妻 黑人 综合 无码 | 中文日韩字幕 | 强公把我次次高潮hd | 日韩精品成人一区 | 黄色av在| 嫩草在线视频 | 开心色婷婷 | 成人久久久精品乱码一区二区三区 | 国产伦理在线观看 | 欧美乱仑 | 国产精品亚洲自拍 | 看片日韩 | 午夜激情久久 | 可以免费看的毛片 | 欧美日韩黄色一级片 | 日本一二三区在线 | 糖心logo在线观看 | 伊人成人在线 | 日韩精品一区二区三区免费视频 | 欧美日韩h| 国产区一二| 亚洲一级av毛片 | 亚洲av无码专区国产乱码不卡 | 国产真实乱人偷精品人妻 | 欧美超碰在线观看 | 自偷自拍亚洲 | 青娱乐极品视频在线 | 17c精品麻豆一区二区免费 | 人人草人人看 | 国产网址在线 | 久久嫩草 | 女同激情久久av久久 | 青青青免费在线视频 | 亚洲欧美国产高清 | 日韩一级二级三级 | 少妇做爰免费视频播放 |