项目中用到了GLOG的宏,由于代码有些问题,需要调试,而后发现代码中的VLOG无法打印到屏幕,经过一番查阅资料,发现应如下设置:
以下是常用标志参数类型及其作用说明:
标志参数 | 类型 | 作用 |
| bool | 值为true的时候,日志信息输出到stderr,并非文件。默认值为 false。 |
| int | 严重性级别在该门限值以上的日志信息除了写入日志文件以外,还要输出到stderr。各严重性级别对应的数值:INFO—0,WARNING—1,ERROR—2,FATAL—3 默认值为2. |
| int | 严重性级别在该门限值以上的日志信息才进行记录。 默认值为0. |
| string | 日志信息记录路径。默认为空,如果没有指定信息输出到stderr,则信息保存在"/tmp/<program name>.<hostname>.<user name>.log.<severity level>.<date>.<time>.<pid>"文件中。 (e.g., "/tmp/hello_world.example.com.hamaji.log.INFO.20080709-222411.10474"). |
| int | 对于使用“ |
| string | 分模块(文件)设置
|
1,环境变量导出法:(所有标志名需添加统一前缀—“GLOG_”,不同标志语句之间以空格相隔)
我采用的设置如下:
export GLOG_log_dir=/tmp
export GLOG_logtostderr=1
export GLOG_max_log_size=1
export GLOG_minloglevel=0
export GLOG_stderrthreshold=1
export GLOG_v=4
其中,GLOG_minloglevel=0 经过实际验证,才可以打印VLOG。
2,命令行参数法:
一、好用
二、不好用
可以在ubuntu上装glog进行测试,Ubuntu16.04下安装glog
1.下载源码
git clone https://github.com/google/glog
2下载必要的模块
sudo apt-get install autoconf automake libtool
3:进入文件目录,运行下面命令安装
./autogen.sh ./configure --prefix =/home/nicholas/glog_ins make -j 24 sudo make install
测试代码:
测试代码
glog的使用简单到令人发指
现有测试程序test.cpp如下
#include <glog/logging.h>
int main(int argc, char* argv[])
{
google::InitGoogleLogging(argv[0]);
LOG(INFO) << "info: hello world!";
LOG(WARNING) << "warning: hello world!";
LOG(ERROR) << "error: hello world!";
VLOG(0) << "vlog0: hello world!";
VLOG(1) << "vlog1: hello world!";
VLOG(2) << "vlog2: hello world!";
VLOG(3) << "vlog3: hello world!";
DLOG(INFO) << "DLOG: hello world!";
return 0;
}
编译方法:
g++ test.cpp -o test -L/home/nicholas/glog_ins/lib/ -lglog -I/home/nicholas/glog_ins/include/
执行:先指定动态库路径
export LD_LIBRARY_PATH=/home/nicholas/glog_ins/lib:$LD_LIBRARY_PATH
执行效果如下: