google-glog 入门教程

Posted liuyunbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了google-glog 入门教程相关的知识,希望对你有一定的参考价值。

本教程的测试环境

  • Ubuntu 18.04 LTS
  • google-glog 0.3.5
  • google-gflags 2.2.1

什么是 google-glog?

google-glog 是 Google 的一个开源的日志库

如何安装 google-glog?

$ sudo apt install libgflags-dev
$ sudo apt install libgoogle-glog-dev

如何配置 google-glog?

google-glog 日志分四类:INFO,WARNING,ERROR 和 FATAL,对于 FATAL ,程序输出日志后将退出。

## 设置是否输出到标准错误,默认否,即输出到文件
## 命令行参数配置,1,true 和 yes(大小写均可)意思相同,0,false 和 no(大小写均可)意思相同
$ --logtostderr=1
## 程序中配置,1 和 true 意思相同,0 和 false 意思相同
FLAGS_logtostderr = 1;

## 设置将指定等级及其以上等级的日志输出到标准错误,默认为 ERROR
## 配置中 0 表示 INFO,1 表示 WARNING,2 表示 ERROR,3 表示 FATAL
## 命令行参数配置
$ --stderrthreshold=2
## 程序中配置
FLAGS_stderrthreshold = 2;

## 设置输出指定等级及其以上等级的日志,默认为 INFO
## 配置中 0 表示 INFO,1 表示 WARNING,2 表示 ERROR,3 表示 FATAL
## 命令行参数配置
$ --minloglevel=0
## 程序内配置
FLAGS_minloglevel = 0;

## 设置日志目录,默认为 /tmp
## 命令行参数配置
$ --log_dir=
## 程序内配置
FLAGS_log_dir =

## 设置 log 是否使用颜色,默认不使用
## 命令行参数配置 1,true 和 yes(大小写均可)意思相同,0,false 和 no(大小写均可)意思相同
$ --colorlogtostderr=true
## 函数内配置,1 和 true 意思相同,0 和 false 意思相同
FLAGS_colorlogtostderr = true;

如何使用 google-glog?

  1. 添加需要的头文件
#include <glog/logging.h>
  1. 设置使用文档(可选)
google::SetUsageMessage("How to use");
  1. 设置版本(可选)
google::SetVersionString("1.0.0");
  1. 配置 LOG
FLAGS_logtostderr      = true;  // 设置 log 输出到标准错误
FLAGS_colorlogtostderr = true;  // 设置 log 使用颜色
  1. 解析命令行
google::ParseCommandLineFlags(&argc, &argv, true);
  1. 初始化 google-glog
google::InitGoogleLogging(argv[0]);
  1. 使用 google-glog
LOG(INFO) << "This is INFO message."
  1. 编译
$ g++ main.cc -lgflags -glog

google-glog 常用的日志宏

## 简单的输出日志
LOG(INFO) << "message";

## 按条件输出日志
LOG_IF(INFO, a > 0) << "message";

## CHECK 类 宏,检查某个条件是否成立,如果不成立,输出信息后将退出
## 注意这和 assert 不同,assert 只在 debug 模式下存在
## 检测结果是否为 true
CHECK(a > 0) << "message";

## 检测两个值是否相等
CHECK_EQ(a, b) << "message";

## 坚持两个值是否不相等
CHECK_NE(a, b) << "message";

## 检测是否为空指针,将返回该指针
CHECK_NOTNULL(p);

## 打印系统错误
PLOG();
PLOG_IF();
PCHECK();

参考资源

以上是关于google-glog 入门教程的主要内容,如果未能解决你的问题,请参考以下文章

Google-GLog编译以及使用

ubuntu16.04下编译ceres-solver

ExtJs 入门教程

Perl入门教程

Pr 入门教程,了解基本校正选项

编程入门教程