一、glog介绍
glog 是 Google 开发的一种轻量级C++日志库,使用方法十分简洁、用在程序中也十分的轻巧。
主要支持以下功能:
1 参数设置,通过设置标志参数来控制日志记录行为;
2 严重性分级,根据日志严重性分级记录日志;
3 可有条件地记录日志信息;
4 条件中止程序,丰富的条件判定宏,可预设程序终止条件;
5 异常信号处理。程序异常情况,可自定义异常处理过程;
6 支持debug功能,可只用于debug模式;
7 自定义日志信息;
8 线程安全日志记录方式;
9系统级日志记录;
10 google perror风格日志信息;
11 精简日志字符串信息。
下面记录一下在工作的项目中是如何使用glog的。
二、编译glog
首先下载glog文件:glog-0.3.3.tar.gz,将其解压 tar -zxvf glog-0.3.3.tar.gz。进入其目录执行如下命令:
$ ./configure --host=arm-arago-linux-gnueabi
这里的–host=arm-arago-linux-gnueabi指明开发的平台,如果不是在对应的ARM上运行,直接运行”./configure”即可。
生成makefile,载执行make命令。会在glog当前目录的.lib下就会有.so的动态库libglog.so.0 。将其拷贝到目标机的/usr/lib目录下。
注意:编译库和运行库是不一样的,运行库是在/usr/lib,当编译运用到glog的程序时还需要在编译库里面加入libglog.so.0。在这里的编译库的路径是:/ti-sdk-am335x/linux-devkit/arm-arago-linux-gnueabi/usr/lib。否则在编译的时候要链接此库但是无法找到这个库时是不能通过编译的。
在makefile中需要加入对glog的链接关键字:-lglog.
@$$GG -fstack-check -fbounds-check -fstack-protector-all -g -o $(application_name) $(TOPOBJS) -lm -lpthread -lxml2 -lrt -lglog
三、实际运用
上述步骤完成后才能够在程序中使用。
来看看对glog的一些初始化操作。
void int_glog(void)
{
char defpath[100] = {0};
char str[256] = "mkdir ";
int cnt = readlink("/proc/self/exe", defpath, sizeof(defpath));
for(int i = cnt; i >= 0; --i)
{
if(defpath[i] == '/')
{
defpath[i+1] = '