,,C++第三方日志库Glog的安装与使用介绍

,,C++第三方日志库Glog的安装与使用介绍

本文主要介绍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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • vs2015打包安装程序,vs2015程序打包,VS2022实现VC++打包生成安装文件图文详细历程
  • vc++6.0的快捷键,vc 快捷键
  • vc++6.0的快捷键,vc 快捷键,VC6.0常用快捷键大全
  • 绘制圆角矩形的方法,c++ 画矩形,C#画圆角矩形的方法
  • 懒汉式和饿汉式代码,单列模式懒汉和饿汉,C++单例模式的懒汉模式和饿汉模式详解
  • 好用的C++编译器,c++编译软件哪个好
  • semaphore c#,c++ semaphore
  • semaphore c#,c++ semaphore,C++中Semaphore内核对象用法实例
  • dev-c++使用教程,dev c++安装教程
  • dev-c++使用教程,dev c++安装教程,Dev C++ 安装及使用方法(图文教程)
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针,简单总结C++中指针常量与常量指针的区别
  • com组件初始化失败,c#开发com组件,C++中COM组件初始化方法实例分析
  • c++静态成员变量使用,c++静态成员函数和静态成员变量
  • c++静态成员变量使用,c++静态成员函数和静态成员变量,详解c++ 静态成员变量
  • 留言与评论(共有 条评论)
       
    验证码: