说明
嵌入式项目(行车记录仪)需要一个日志库,综合考虑下选择glog。
glog 简介
google 出的一个C++轻量级日志库,支持以下功能:
* 参数设置,以命令行参数的方式设置标志参数来控制日志记录行为;
* 严重性分级,根据日志严重性分级记录日志;
* 可有条件地记录日志信息;
* 条件中止程序。丰富的条件判定宏,可预设程序终止条件;
* 异常信号处理。程序异常情况,可自定义异常处理过程;
* 支持debug功能;
* 自定义日志信息;
* 线程安全日志记录方式;
* 系统级日志记录;
* google perror风格日志信息;
* 精简日志字符串信息
环境配置
源码下载
* 国外官网地址
https://code.google.com/p/google-glog/downloads/list
* 如果Google官网访问不了,可以使用github上的代码
git clone https://github.com/google/glog
编译安装
采用当前最新版本glog-0.4.0,编译指令如库中README所示
* pc环境
./autogen.sh && ./configure && make && make install
* 或者采用cmake 编译
cmake .. && make && make install
* 交叉编译
./configure --host=arm-buildroot-linux-uclibcgnueabihf
make
make install
* 交叉编译使用uClibc标准库,strip后的动态库也只有80KB,不会占用太大空间
基本使用
#include <iostream>
#include "glog/logging.h" // 引入glog 头文件
using namespace std;
int main(int argc, char** argv) {
google::InitGoogleLogging(argv[0]); //glog库 初始化
LOG(ERROR) << "hello glog"; // 打印log:“hello glog. 类似于C++ stream。
}
* 编译: g++ glog_test.cpp -lglog -o glog_test