glog获取
git clone https://github.com/google/glog.git
或者直接网页下载下来,tar -xzvf google-master*.gz
glog编译生成
如果是window平台,得使用CMake工具生成解决方案并编译生成相应的libglog.dll,libglog.lib本文不作赘述。前面以说过CMake的使用。
Ubuntu生成库还是很方便的,基本命令流程就是
./autogen.sh该工具如果没安装会报错,安装命令sudo apt-get install autoconf automake libtool,必须是三个包都安装
./configure 生成配置信息,可以在此改变生成路径,否则默认是/usr/local/lib目录
make
make install 这里可能需要sudo,执行无报错,会生成相应的库文件:libglog.a,libglog.so....
可以将生成的动态库放到系统lib目录 cp libglog.so* /usr/lib
glog使用
库已经生成了,头文件结构如下图(这是我的qt中引用的结构):
测试代码如下:
#include <iostream> #include "glog/logging.h" using namespace std; int main(int argc,char** argv) { google::InitGoogleLogging(argv[0]);//初始化 google::SetLogDestination(google::GLOG_INFO,"./aTestInfo");//设置日志文件路径,默认+时间作为生成的日志文件名 LOG(INFO)<<"HELLO"<<" WORLD!"; return 0; }
g++ Test.cpp -L库目录 -lglog
./a.out
顺便附上qt工程配置
INCLUDEPATH +=./3rdParty/glog-master/include
LIBS += -L./3rdParty/glog-master/lib -lglog
注意
你可以使用以下的日志等级(日志等级从低到高):INFO、WARNING、ERROR和FATAL。使用FATAL打印日志的时候,程序会在打印该日志后终止。需要注意的是,一个给定的日志等级日志信息不仅会记录到当前的日志等级文件,还会记录到所有比他等级低的日志文件内(就是说,WARNGING的日志不仅会打印到日志文件warnging中,还会打印到INFO日志文件中),比如FATAL的日志会打印到所有的日志文件中,包括INFO、WARNING、ERROR和FATAL。
Windows使用glog(0.3.5)
此版本glog在window下CMake会生成一系列项目,如图glog只生成lib库
这在之前的版本会生成dll,lib等几个工程,现在就只有一个工程了也只需要使用这一个静态库,换句话说可能是考虑到项目本来就轻巧,不需要dll,直接lib足够了。
下面说使用注意点:
1、在需要的地方#include "glog/logging.h"。建议添加到stdafx.h中。
2、使用静态库必须添加#define GOOGLE_GLOG_DLL_DECL。动态库不必添加。
3、因windows.h中定义的宏ERROR,与glog中定义的宏ERROR冲突,所以如果#include <windows.h>后要添加#define GLOG_NO_ABBREVIATED_SEVERITIES,并且代码中要用google::GLOG_ERROR来代替原来的google::ERROR,相应的其他也改为:GLOG_INFO、GLOG_WARNING、GLOG_FATAL。