【C++】google glog库

介绍

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

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

安装

下载地址: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

使用

头文件#include <glog/logging.h>

glog中的日志分为4个级别,即INFO,WARNING,ERROR,FATAL、分别对应数字0, 1, 2, 3
对应级别的日志打印在对应级别的日志文件中。并且高级别的日志同时打印在本级别和低级别中。例如INFO中, 会有WARNING级别的输出。

初始化参数

  • FLAGS_log_dir 日志输出目录
  • FLAGS_v 自定义VLOG(m)时,m值小于此处设置值的语句才有输出
  • FLAGS_max_log_size 每个日志文件最大大小(MB级别)
  • FLAGS_minloglevel 输出日志的最小级别,即高于等于该级别的日志都将输出。

glog是根据进程ID来区分文件的,如果你重新启动了程序,则log文件的名字就会变。
示例

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <glog/logging.h>

using namespace std;

int main(int argc, char **argv)
{
  google::InitGoogleLogging(argv[0]);
  FLAGS_log_dir = "./log";  //存储日志的路径

  LOG(INFO) << "frank";
  LOG(WARNING) << "Hello";

  google::ShutdownGoogleLogging(); //与google::InitGoogleLogging(argv[0]);成对使用,不然会内存泄漏

  return 0;
}

在log文件夹下能够看到日志的情况

-rw-rw-r--  1 fangjin fangjin 265 Sep 17 17:46 test_glog.cp01-rdqa-dev168.cp01.baidu.com.fangjin.log.INFO.20160917-174615.22494
-rw-rw-r--  1 fangjin fangjin 213 Sep 17 17:46 test_glog.cp01-rdqa-dev168.cp01.baidu.com.fangjin.log.WARNING.20160917-174615.22494
lrwxrwxrwx  1 fangjin fangjin  80 Sep 17 17:46 test_glog.INFO -> test_glog.cp01-rdqa-dev168.cp01.baidu.com.fangjin.log.INFO.20160917-174615.22494
lrwxrwxrwx  1 fangjin fangjin  83 Sep 17 17:46 test_glog.WARNING -> test_glog.cp01-rdqa-dev168.cp01.baidu.com.fangjin.log.WARNING.20160917-174615.22494

主要是test_glog.WARNING文件和test_glog.INFO文件,
例如,其中test_glog.INFO如下

Log file created at: 2016/09/17 17:46:15
Running on machine: fang
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg                                                                          
I0917 17:46:15.434000 22494 test_glog.cpp:24] frank
W0917 17:46:15.434185 22494 test_glog.cpp:25] Hello

进阶

还可以使用条件输出等,暂留。

参考 http://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值