您的位置:首页 > 编程语言 > Go语言

google log 使用

2016-03-17 13:52 507 查看
glog 是谷歌的开源的C++轻量级日志库。

使用非常简单。

下载后编译生成动态库文件(libglog.dll,libglog.lib)。

拷贝glog文件夹下的头文件和两个库文件到工程目录下。

代码demo如下:

#include "stdafx.h"
#include <string>
#using namespace std;
#include "glog/logging.h"
#pragma comment(lib,"libglog.lib")
int main(int argc,_TCHAR* argv[])
{
google::initGoogleLogging(argv[0]);
LOG(INFO) << "INFO:"<<str;
LOG(ERROR) << "INFO:"<<str;
google::ShutdownGoogleLogging();
return 0;
}


比起log4系列的好用多了。

google::SetLogDestination(google::INFO,installPath.c_str()); //INFO级别的日志都存放到installPath目录下
google::SetLogDestination(google::ERROR,installPath.c_str());//ERROR级别的日志都存放到installPath目录下
google::SetLogDestination(google::WARNING,installPath.c_str());//WARNING级别的日志都存放到installPath目录下

google::SetStderrLogging(google::INFO);  //输出到标准输出的时候大于INFO级别的都输出;
FLAGS_logbufsecs  = 0;  //日志实时输出
FLAGS_max_log_size = 1024; // max log size is 1024M
LOG_IF(INFO, num_cookies > 10) << "Got lots of cookies";   //当条件满足时输出日志
LOG_EVERY_N(INFO, 10) << "Got the " << google::COUNTER << "th cookie";  //google::COUNTER 记录该语句被执行次数,从1开始,在第一次运行输出日志之后,每隔 10 次再输出一次日志信息
LOG_IF_EVERY_N(INFO, (size > 1024), 10) << "Got the " << google::COUNTER << "th big cookie";  //上述两者的结合,不过要注意,是先每隔 10 次去判断条件是否满足,如果滞则输出日志;而不是当满足某条件的情况下,每隔 10 次输出一次日志信息。
LOG_FIRST_N(INFO, 20) << "Got the " << google::COUNTER << "th cookie";  //当此语句执行的前 20 次都输出日志,然后不再输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: