GLOG使用Demo

GLOG是Google开源的一个精简的日志系统,博主简单学习了一下并记录常见用法,以备日常查询

一、安装

照例是编译安装,不过没有使用cmake

git clone https://github.com/google/glog.git
cd glog
./autogen.sh
./configure
make
sudo make install

二、Demo

# CMakeLists.txt
cmake_minimum_required (VERSION 2.8.11)
project (proj) find_package (glog) add_executable (demo01 1.cc)
target_link_libraries (demo01 glog)
// 1.cpp
#include <glog/logging.h>
int main(int argc, char *argv[])
{
google::InitGoogleLogging(argv[0]);
google::SetLogDestination(google::INFO, "log/"); // 把日志同时记录文件,最低级别为INFO // 通过GFLAGS来设置参数,更多选项可以在logging.cc里面查询
// 日志等级分为INFO, WARNING, ERROR, FATAL,如果是FATAL级别这直接运行报错
FLAGS_stderrthreshold = google::WARNING;
FLAGS_colorlogtostderr = true; LOG(WARNING) << "Hello GLOG";
// 条件输出
LOG_IF(INFO, 20 > 10) << "20 > 10";
// 频率输出,本质上是通过google::COUNTER这个计数机实现的
for (int i = 0; i < 10; i++)
{
LOG_EVERY_N(ERROR, 3) << "每隔3次输出一次 " << i;
LOG_FIRST_N(ERROR, 2) << "前两次输出 " << i;
LOG_IF_EVERY_N(WARNING, 1 < 2, 2) << "条件输出+频率" << google::COUNTER;
}
google::ShutdownGoogleLogging();
}

三、编译运行

mkdir build
cd build
mkdir log # 存放日志的目录
cmake ..
make
./demo01

四、运行结果

命令行结果(事实上不同等级的日志会有不同的颜色)

W1110 12:00:49.353030 3474011072 1.cc:13] Hello GLOG
E1110 12:00:49.355512 3474011072 1.cc:19] 每隔3次输出一次 0
E1110 12:00:49.355850 3474011072 1.cc:20] 前两次输出 0
W1110 12:00:49.355880 3474011072 1.cc:21] 条件输出+频率1
E1110 12:00:49.355916 3474011072 1.cc:20] 前两次输出 1
W1110 12:00:49.355944 3474011072 1.cc:21] 条件输出+频率3
E1110 12:00:49.355969 3474011072 1.cc:19] 每隔3次输出一次 3
W1110 12:00:49.356000 3474011072 1.cc:21] 条件输出+频率5
E1110 12:00:49.356024 3474011072 1.cc:19] 每隔3次输出一次 6
W1110 12:00:49.356053 3474011072 1.cc:21] 条件输出+频率7
W1110 12:00:49.356077 3474011072 1.cc:21] 条件输出+频率9
E1110 12:00:49.356101 3474011072 1.cc:19] 每隔3次输出一次 9

同时在log目录下会有日志文件

➜  build tree log/
log/
├── 20181110-115213.48624
├── 20181110-115249.48650
├── 20181110-120049.48867
└── demo01.INFO -> 20181110-120049.48867 # demo01.INFO会软链到最新的日志

五、小结

现在日益感觉到日志的重要性,感觉GLOG设计的非常精妙,代码也比较明了,但官网的文档比较简单,更多功能可以直接读源码

GLOG使用Demo的更多相关文章

  1. glog入门demo

    glog 一. 下载与安装 git clone https://github.com/google/glog.git cd glog ./autogen.sh ./configure make mak ...

  2. windows和linux环境下使用google的glog日志库

    一.概述 glog是google推出的一款轻量级c++开源日志框架,源码在github上,目前最新release版本是v0.3.5. githut地址:https://github.com/googl ...

  3. glog学习(一):glog的编译及demo

    windows平台: 1.下载glog代码.下载地址:https://github.com/google/glog 2.使用cmake工具,获得对应的工程文件sln. 3.打开sln文件,生成对应的l ...

  4. Glog

    Glog的简单入门,glog虽然在配置参数方面比较麻烦,但是在小规模程序中,由于其简单灵活,也许会有优势. 0,  glog 是google的开源日志系统,相比较log4系列的日志系统,它更加轻巧灵活 ...

  5. glog 使用

    glog 使用 来源:http://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html 一.安装配置 1.简介 google 出的 ...

  6. glog的使用

    主要还是看官方文档吧 win32下,把#define GLOG_NO_ABBREVIATED_SEVERITIES 放到#include <windows.h>之前,具体说明文档中有说. ...

  7. ubuntu16.04下caffe以cpu运行faster rcnn demo

    参考https://haoyu.love/blog404.html 获取并修改代码 首先,我们需要获取源代码: git clone --recursive https://github.com/rbg ...

  8. XMLHTTPRequest DEMO(发送测试)

    对于其中的HTTP状态,我们知道200-299表明访问成功:300-399表明需要客户端 反应来满足请求:400-499和500-599表明客户端和服务器出错:其中常用的如404表示资源没找到,403 ...

  9. 初次使用glog

    一.安装配置 1.简单介绍 google 出的一个C++轻量级日志库,支持下面功能: ◆ 參数设置,以命令行參数的方式设置标志參数来控制日志记录行为: ◆ 严重性分级,依据日志严重性分级记录日志: ◆ ...

随机推荐

  1. sqlyog连接mysql8.0

    1.本人安装的是mysql8.0社区版,安装包名称:mysql-installer-community-8.0.12.0.msi,可自行到官网下载. 2.安装完成后用sqlyog连接数据库出现密码乱码 ...

  2. stylus 实践

    音乐分享: Broken Back - <Halcyon Birds> —————————————————————————————————————————————————————————— ...

  3. Jquery验证码倒计时

    html代码: <input type="button" value="获取验证码" id="getCode" style=" ...

  4. tp5 自定义排序

  5. bzoj 3998

    我们分成两种情况来分析这个问题:t=0和t=1 t=1时,每一个子串出现的次数就是他在parent树上所在子树内前缀节点的个数,这一点我们已经说的很清楚了 利用SAM有向无环的性质,我们可以在pare ...

  6. zabbix_agentd客户端安装与配置(windows操作系统)

    zabbix_agentd客户端安装与配置(windows操作系统)   **********  客户端操作   **********  标注:监控zabbix_agentd客户端安装对象是win s ...

  7. Django发HTML邮件

    1.settings配置 EMAIL_HOST = 'XXXX' DEFAULT_FROM_EMAIL = '张宁 <zhang.ning@XXX.com>' RECEIVER =['zh ...

  8. knn算法详解

    邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...

  9. 【lamba】java 8的新特性

    看到lamba表达式用起来还不错,找了几篇文章学习下: 所以结合之前两个反编译的结果可以看到,lamdba表达式运行整体思路大致如下: 1. lamdba表达式被编译生成当前类的一个私有静态方法 2. ...

  10. ios 开发视图界面动态渲染

    #import "MyView.h" IB_DESIGNABLE @interface MyView () @property (nonatomic, strong) IBInsp ...