glog使用教程

本文档详细介绍了glog的获取、编译过程,并展示了如何在VS2015中使用glog,包括LOG宏、日志等级、常用FLAGS、条件型LOG、调试模式支持、Verbose和CHECK宏的使用,帮助开发者更好地理解和应用glog。
摘要由CSDN通过智能技术生成

glog

glog是一个轻量、稳定、开源的日志系统,详细见上一篇文章所述.这里主要介绍glog的使用.

glog获取和编译

  • 获取glog工程
    git clone https://github.com/google/glog.git
  • 编译
    我这里使用编译工具是”Visual Studio2015”,打开”google-glog.sln”工程,编译会报如下错误:
D:\src\test\glog\src\windows\port.h(116): error C2375: 'snprintf': redefinition; different linkage
...

snprintf重复定义问题,其中一种解决办法:

--- a/src/windows/port.h
+++ b/src/windows/port.h
@@ -111,6 +111,7 @@ enum { STDIN_FILENO = 0, STDOUT_FILENO = 1, STDERR_FILENO = 2 };
  * because they don't always NUL-terminate. :-(  We also can't use the
  * name vsnprintf, since windows defines that (but not snprintf (!)).
  */
+#define HAVE_SNPRINTF
 #ifndef HAVE_SNPRINTF

编译成功,生成动态库(libglog.dll,libglog.lib),和静态库(libglog_static.lib).接下来以动态库的方式说明glog的使用.

glog使用

  • 添加glog模块到工程
    • 头文件
      设置VS2015工程头文件路径:

代码添加:

//为了防止windows.h头文件中的ERROR与glog的ERROR重定义问题.这个宏必须在包含logging.h之前定义!
#define GLOG_NO_ABBREVIATED_SEVERITIES 
#include <glog/logging.h>
  • 添加lib
    设置VS2015工程lib路径:

添加代码:

//import lib
#pragma comment(lib,"libglog.lib")
  • 添加dll
    将前面编译好的”libglog.dll”放到你的运行程序的同级目录下.

LOG

输出你的第一条LOG信息:

    //programe name:"HelenXR_glog_program"
    google::InitGoogleLogging("HelenXR_glog_program");
    LOG(INFO) << "google log first info level message!";

      //...... DoSomething
      //Shutdown google's logging library.
    google::ShutdownGoogleLogging();

此时如果你是的工程时控制台程序,你会发现”google log first info level message!”这句信息并没有输出到控制台中,它们去哪了?别急,这时候你要保持冷静!冷静!冷静!
如果没有设置日志存放的文件夹(下面我们会介绍如何保存到指定文件夹),它们会被存放到指定的路径(windows平台上会默认存放到$(LOCALAPPDATA)的Temp文件夹下,如:C:\Users\dell\AppData\Local\Temp,这个路径中的”dell”是计算机当前的用户名),你可以找到以特定格式命名的文件,格式为:

/tmp/<program name>.<hostname>.<user name>.log.<severity level>.<date>.<time>.<pid>

例如,我这里运行的是”HelenXR_glog_program.PC-2016-0510-9.dell.log.INFO.20170426-113842.14508”(这个文件名看起来很完整,实际使用还是不方便,花点时间可以修改,这里是我之前做的一个尝试,如果你有兴趣可以做的更好),打开这个文件我们可以看到如下信息:

Log file created at: 2017/04/26 11:38:42
Running on machine: PC-2016-0510-9
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I0426 11:38:42.172986 14132 glog.cpp:20] google log first info level message!

上面介绍了日志输出的格式和我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值