本文主要介绍C第三方日志库Glog的安装和使用。本文使用的环境是VisualStudio2017。本文以图文并茂的形式非常详细的向大家介绍了一下,有需要的朋友可以参考一下。
目录
一、glog II简介。glog III下载。环境导论3。glog的编译细节3.1用CMake编译生成VS解决方案3.2用VS IV编译项目。glog的基本使用4.1 Create VS project 4.2在项目中包含glog相关的文件4.3编写用于测试的代码4.4测试代码2 V .代码细节5.1定义5.2包含引用:
一、glog介绍
Google Logging(glog)是一个C 98库,实现了应用程序级别的日志记录。该库提供了基于C风格流的日志API和各种辅助宏。
二、glog下载
Glog的地址已经从https://code.google.com/p/google-glog/更改为https://github.com/google/glog.请从这个链接地址下载最新版本。
官方文件:http://google-glog.googlecode.com/svn/trunk/doc/glog.html.
三、环境介绍
这个配置使用的环境是Visual Studio2017。
三、glog的编译详解
3.1 利用CMake进行编译,生成VS解决方案
首先,你需要下载安装CMake。下载方法请参考文章:Windows下下载安装CMake详解。
然后你需要从github下载glog的源代码。在这里,我们将源代码下载到文件夹E:\3PartyLibrary。
然后在glog-master文件夹中创建一个新的构建文件夹来存储编译后的文件。
【注意】:如果建在该文件夹外部,会引发错误!!!
然后使用cmake-gui生成VS解决方案。如下图所示。
在这里选择你用的编译器(我这里用的是Visual Studio2017),然后在下面输入x64:
单击“完成”结束。等待几分钟,让CMake进行配置。配置完成后,如下图所示:
此时,需要进行以下设置:
是共建_共享_LIBS。我们必须选中这个选项,因为我们需要一个动态库。
是CMAKE_INSTALL_PREFIX。此路径是存储安装后生成的头文件和库文件的路径。这里,我们在同一级别的源目录中创建一个文件夹,并将其命名为install。
和分别是WITH_GFLAGS和WITH_UNWIND。我不知道这两个具体是做什么的,但是如果你勾选了这两个,你就会在cmake的过程中得到警告,所以你不要勾选。
之后分别点击配置和生成,生成完成后没有红色选项。
3.2 利用VS对项目进行编译
生成上述步骤后,sln解决方案将在构建目录中生成。用Visual Studio打开glog.sln解决方案,打开后的目录如下:
选择发布模式,分别生成ALL_BUILD和INSTALL项目,如下图所示。(如果项目在debug模式下开发,就在debug模式下生成glog的DLL文件;如果项目在release模式下开发,就在release模式下生成glog的DLL文件;我这里选择的是Release模式)
生成过程中不应有错误。
成功生成后,将在安装目录中生成头文件和库文件。如下图所示。
好吧!这就是glog编译的全部内容。下一节介绍glog的基本用法。
四、glog的基本使用
4.1 创建VS项目
创建一个新的Visual Studio项目,并生成发布。
这里,为了使代码目录结构清晰,上面生成的头文件放在include文件夹中。上面生成的lib文件放在lib文件夹中,而。上面生成的dll文件放在项目所在的文件夹中,如下图所示。
4.2 将glog相关文件包含在项目中
在使用vs创建一个新项目之后,我们需要将上面生成的头文件包含在项目的包含目录中,将上面生成的库文件包含在项目的库目录中。如下图所示。
【注意】:一定要选x64,发布!
4.3 编写代码进行测试
最简单的测试代码如下:
# IFN def GLOG _否_缩写_严重性
# define log _ no _ a braced _ severities//如果不添加这个宏定义代码,会报错。
#endif
#包含glog/logging.h
#pragma注释(lib,' glog.lib ')
int main(int argc,char* argv[])
{
FLAGS _ alsologtostderr=true//是否将日志输出到文件和stderr
Google:init Google logging(' test ');//在使用glog之前,必须对库进行初始化,只需要执行一次即可。程序名在括号中。
“你好,GLOG!”;
Google:shuttdownggooglelogging();//结束glog时,必须关闭库,否则内存会溢出。
返回0;
}
输出是:
你好,GLOG!
【注意】:glog在整个项目周期内只允许生成一个日志文件,也就是说在glog从初始化到注销的整个过程中,不允许再次调用GLog的初始化或注销。另一层意思可以理解为只允许一个实例化的对象。
4.4 测试代码2
测试代码如下:
# IFN def GLOG _否_缩写_严重性
# define log _ no _ a braced _ severities//如果不添加这个宏定义代码,会报错。
#endif
#包含glog\logging.h
#pragma注释(lib,' glog.lib ')
int main()
{
Google:init Google logging(' test ');//在使用glog之前,必须对库进行初始化,只需要执行一次即可。程序名在括号中。
FLAGS _ alsologtostderr=true//是否将日志输出到文件和stderr
FLAGS _ colorlogtostderr=true//是否启用不同颜色显示
Google:setlog destination(Google:GLOG _信息,' E:\ \日志\ \信息_ ');//信息级日志存储在前缀为INFO_
Google:setlog destination(Google:GLOG _警告,' E:\ \ logs \ \警告_ ');//警告级别日志存储在带有前缀WARNING_
Google:setlog destination(Google:GLOG _ ERROR,' E:\ \ logs \ \ ERROR _ ');//错误级别日志存储在日志目录中,前缀为ERROR_
Google:setlog destination(Google:GLOG _致命,' E:\ \ logs \ \致命_ ');//致命级别的日志存储在带有前缀FATAL_
日志(信息)“信息”;
日志(警告)“警告”;
LOG(ERROR)“错误”;
/* LOG(FATAL)' FATAL ';*/
Google:shuttdownggooglelogging();//结束glog时,必须关闭库,否则内存会溢出。
返回0;
}
代码执行后,E:\logs文件夹中会生成四个日志文件。在这里,我没有打印出FATAL,因为当glog检测到' LOG(FATAL)'代码时,它会直接结束程序,而不会继续执行下面的代码。
五、代码详解
5.1 define
除了上面前三行添加的代码,还可以选择添加预处理项。c/c ——预处理器。添加glog _ NO GLOG _ NO _缩写_SEVERITIES。
5.2 include
在需要使用glog打印日志的cpp文件中包含头文件,加载glog库文件。注意:每个使用glog的cpp文件都必须添加以下代码:
#包含“glog/logging.h”
#pragma注释(lib,' libglog.lib ')
5.3 InitGoogleLogging
在使用glog之前,您必须初始化库。要生成日志文件,您只需在启动日志之前调用它一次:
Google:init googlelogging(argv[0]);//程序名在括号中。
5.4关闭谷歌日志
当你想结束glog时,你必须关闭库,否则内存会溢出:
Google:shuttdownggooglelogging();
下篇文章(C第三方日志库glog基本语法介绍)将详细介绍Glog库的基本语法。敬请关注~
参考:
https://blog.csdn.net/w_b_h/article/details/107070652
https://blog.csdn.net/qq_27278957/article/details/84648912
https://blog.csdn.net/fx_odyssey/article/details/102815949
https://blog.csdn.net/weixin_33929309/article/details/85541046
https://www . cnblogs . com/tianyajanke/archive/2013/02/22/2921850 . html
https://my.oschina.net/u/4320185/blog/3755592
关于C第三方日志库Glog的安装和使用的这篇文章到此为止。关于C第三方日志库Glog的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。