glog

一、安装配置

1、简介

google 出的一个C++轻量级日志库,支持以下功能:

复制代码
◆ 参数设置,以命令行参数的方式设置标志参数来控制日志记录行为;
◆ 严重性分级,根据日志严重性分级记录日志;
◆ 可有条件地记录日志信息;
◆ 条件中止程序。丰富的条件判定宏,可预设程序终止条件;
◆ 异常信号处理。程序异常情况,可自定义异常处理过程;
◆ 支持debug功能;
◆ 自定义日志信息;
◆ 线程安全日志记录方式;
◆ 系统级日志记录;
◆ google perror风格日志信息;
◆ 精简日志字符串信息
复制代码

 

2、安装

下载地址:

https://code.google.com/p/google-glog/downloads/list

解压安装:

tar zxvf glog-0.3.3.tar.gz && cd glog-0.3.3 && ./configure && make

头文件目录为 /src/glog ,链接库为 .libs/libglog.{a,so}

帮助文档为 doc/glog.html 或直接访问以下 URL:

http://google-glog.googlecode.com/svn/trunk/doc/glog.html

 

3、简单 Demo 

#include <glog/logging.h>

int main(int argc,char* argv[])
{
   
    LOG(INFO) << "Hello,GLOG!";
}

链接时,需要 -lglog ,也可能会需要 -lunwind -lpthread (有一次遇到的,记不起来了,一般不需要)

执行时,可使用 ./glogdemo 将日志输出到 stderr,可使用 valgrind 检测,未发现内存泄漏。

 

 

二、使用方法

1、错误级别

GLOG 有四个错误级别,枚举如下:

复制代码
enum SeverityLevel
{
  google::INFO = 0,
  google::WARNING = 1,
  google::ERROR = 2,
  google::FATAL = 3,
};
复制代码

 

2、Flags 设置:

在上面的简单 Demo 中,只能将日志输出到 stderr ,如果想将日志重定向到文件,需要:

google::InitGoogleLogging(argv[0]);
/*
GLOG代码
*/
google::ShutdownGoogleLogging();

默认运行会将日志输出到 /tmp 目录下(格式为 "<program name>.<hostname>.<user name>.log.<severity level>.<date>.<time>.<pid>"),也可以使用设置临时环境变量的方式(给命令行参数加上 GLOG_ 前缀),如 GLOG_logtostderr=1 ./your_application 将日志输出到 stderr。

另外,glog 使用了 gflags 库,如果已经安装好了 gflags 库(./configure && make && make install 然后再配置编译GLOG库)还可以通过 ./your_application --logtostderr=1 来指定运行参数,但需要在使用时加上如下代码:(详见 http://www.cnblogs.com/tianyajuanke/p/3467572.html

google::ParseCommandLineFlags(&argc, &argv, true);
/*
GLOG代码
*/
google::ShutDownCommandLineFlags();

但此方法会使 valgrind 检测有内存泄漏(截止 valgrind 3.9.0 依然如此),这是由于使用 gflags 库造成的。(即使不使用此方法,但只要在编译 glog 库之前安装好了 gflags 库,就会使 libglog.so 有内存泄漏,介意者可进入 gflags 目录 make uninstall 之后,再对 glog 进行 ./configure && make )。

常用的运行参数如下:

复制代码
logtostderr (bool, default=false)    //是否将所有日志输出到 stderr,而非文件
alsologtostderr(bool,default=false)  //是否同时将日志输出到文件和stderr
minloglevel (int, default=google::INFO)  //限制输出到 stderr 的部分信息,包括此错误级别和更高错误级别的日志信息 
stderrthreshold (int, default=google::ERROR)  //除了将日志输出到文件之外,还将此错误级别和更高错误级别的日志同时输出到 stderr,这个只能使用 -stderrthreshold=1 或代码中设置,而不能使用环境变量的形式。(这个参数可以替代上面两个参数)
colorlogtostderr(bool, default=false)  //将输出到 stderr 上的错误日志显示相应的颜色 
v (int, default=0)  //只记录此错误级别和更高错误级别的 VLOG 日志信息
log_dir (string, default="")  //
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值