google-glog 入门教程
简介
google-glog 是 Google 的一个开源的日志库
测试环境
- Ubuntu 18.04 LTS
- google-glog 0.3.5
- google-gflags 2.2.1
安装
$ sudo apt install libgflags-dev
$ sudo apt install libgoogle-glog-dev
配置
google-glog 日志分四类:INFO,WARNING,ERROR 和 FATAL,对于 FATAL ,程序输出日志后将退出
- 设置是否输出到标准错误,默认否,即输出到文件
命令行参数配置
$ --logtostderr=1 # 1,true 和 yes(大小写均可)意思相同
$ --logtostderr=0 # 0,false 和 no (大小写均可)意思相同
程序中配置
FLAGS_logtostderr = 1; # 1 和 true 意思相同
FLAGS_logtostderr = 0; # 0 和 false 意思相同
- 设置将指定等级及其以上等级的日志输出到标准错误,默认为 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 是否使用颜色,默认不使用
命令行参数配置
$ --colorlogtostderr=1 # 1,true 和 yes(大小写均可)意思相同
$ --colorlogtostderr=0 # 0,false 和 no (大小写均可)意思相同
函数内配置
FLAGS_colorlogtostderr = 1; # 1 和 true 意思相同
FLAGS_colorlogtostderr = 1; # 0 和 false 意思相同
使用
- 添加需要的头文件
#include <glog/logging.h>
- 设置使用文档(可选)
google::SetUsageMessage("How to use");
- 设置版本(可选)
google::SetVersionString("1.0.0");
- 配置 LOG
FLAGS_logtostderr = true; // 设置 log 输出到标准错误
FLAGS_colorlogtostderr = true; // 设置 log 使用颜色
- 解析命令行
google::ParseCommandLineFlags(&argc, &argv, true);
- 初始化 google-glog
google::InitGoogleLogging(argv[0]);
- 使用 google-glog
LOG(INFO) << "This is INFO message."
- 编译
$ g++ main.cc -lgflags -glog
常用的日志宏
- 简单的输出日志
LOG(INFO) << "message";
- 按条件输出日志
LOG_IF(INFO, a > 0) << "message";
- 检查某个条件是否成立
CHECK(a > 0) << "message";
- 检测两个值是否相等
CHECK_EQ(a, b) << "message";
- 坚持两个值是否不相等
CHECK_NE(a, b) << "message";
- 检测是否为空指针,将返回该指针
CHECK_NOTNULL(p);
- 打印系统错误
PLOG();
PLOG_IF();
PCHECK();