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. springboot+mysql+mybatis+Mybatis-Generator+druid 项目demo

    1.使用idea新建项目 2.使用Mybatis-Generator自动生成Dao.Model.Mapping相关文件 3.配置application.yml文件 server: port: 8080 ...

  2. HDU - 1050

    wa了5遍?!! (1)前4遍,思路没简化,企图模拟整个过程,但是调用sort函数时由于没有把奇数的屋子和偶数的屋子统一,排序出了问题. 思路:遍历n段,每次只扫未被标记过的一段,ans++并且从该段 ...

  3. Xshell 连接虚拟机出现 "The remote SSH server rejected X11 forwarding request"

    1. 描述 虚拟机:VirtualBox Linux: centOS7 解决了 centOS7在VirtualBox中装好后的网络连接问题 后,用 Xshell 连接服务器时出现下面情况: 2. ss ...

  4. String,下表和切片,分割

    字符串介绍 1.字符串在内存中的存储 2.字符串的加法 3.字符串的格式化 1. 下标索引 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间 字符串中" ...

  5. STM32F0使用LL库实现Modbus通讯

    在本次项目中,限于空间要求我们选用了STM32F030F4作为控制芯片.这款MCU不但封装紧凑,而且自带的Flash空间也非常有限,所以我们选择了LL库实现.本篇将说明基于LL实现USART通讯. 1 ...

  6. 小米众筹新品---8H凉感慢回弹记忆绵枕 99元 上手开箱图

    在众目睽睽之下,商城终于成了杂货铺 众筹发布了第98期新品——8H凉感慢回弹记忆绵枕H1,售价为99元,主打舒适凉感,抗菌吸湿,三曲线护颈设计,3~5秒慢回弹. 本着程序员的读书历程:x 语言入门 — ...

  7. python3解决 json.dumps中文乱码

    使用json.dumps()运行结果如下 role_name字段中文乱码了 只需要使用ensure_ascii=False 运行结果如下:

  8. C++智能指针剖析(下)boost::shared_ptr&其他

    1. boost::shared_ptr 前面我已经讲解了两个比较简单的智能指针,它们都有各自的优缺点.由于 boost::scoped_ptr 独享所有权,当我们真真需要复制智能指针时,需求便满足不 ...

  9. 分析python日志重复输出问题

    问题起源: ​ 在学习了python的函数式编程后,又接触到了logging这样一个强大的日志模块.为了减少重复代码,应该不少同学和我一样便迫不及待的写了一个自己的日志函数,比如下面这样: impor ...

  10. 【JAVA】文件各行打乱

    给定一个文件,把文件 里的各行打乱,并验证其正确性,时间紧迫,随手写写 String path = "/Users/guangyi.zgy/Desktop/scene_2khas_8kno_ ...