google log 使用

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 次都输出日志,然后不再输出

你可能感兴趣的:(google log 使用)