glog中的VLOG无法打印的问题

tech2025-09-23  20

项目中用到了GLOG的宏,由于代码有些问题,需要调试,而后发现代码中的VLOG无法打印到屏幕,经过一番查阅资料,发现应如下设置:

以下是常用标志参数类型及其作用说明:

标志参数

类型

作用

logtostderr

bool

值为true的时候,日志信息输出到stderr,并非文件。默认值为 false。

stderrthreshold

int

严重性级别在该门限值以上的日志信息除了写入日志文件以外,还要输出到stderr。各严重性级别对应的数值:INFO—0,WARNING—1,ERROR—2,FATAL—3

默认值为2.

minloglevel

int

严重性级别在该门限值以上的日志信息才进行记录。

默认值为0.

log_dir

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").

v

int

对于使用“ VLOG(m)”(m为int型)表达式进行输出的日志信息,只在m的值小于该标志的值的时候,才进行输出。另外, 该设置可能被 vmodule标志给覆盖.默认为0.

vmodule

string

分模块(文件)设置VLOG(m)日志信息的输出基本。命令格式为以逗号分开的“<module name>=<log level>”表达式组成。其中<module name> 是“glob pattern”,支持通配符,<module name>不包括文件的扩展名(.h,.cc等)。

 

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

执行效果如下:

 

 

 

最新回复(0)