Original url:
http://blog.51cto.com/mengjh/546766
本文是根据自己的理解翻译组织了glog的manual,鉴于自身的理解能力和英语水平,可能存在谬误,欢迎大家指出!英文原文见 http://google-glog.googlecode.com/svn/trunk/doc/glog.html
标志参数
|
类型
|
作用
|
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
|
分模块(文件)设置 |
INFO
,
WARNING
,
ERROR
, 和
FATAL
四级。使用者可以在命令行中设置严重性等级门限值来控制日志的输出,详细见“参数设置”部分的“
minloglevel
”标志值的介绍。
1, LOG_IF(INFO, num_cookies > 10) << "Got lots of cookies";
上面的语句表示,只有当num_cookies > 10条件成立时,“Got lots of cookies”日志信息才被记录。
2, LOG_EVERY_N(INFO, 10) << "Got the " << COUNTER << "th cookie";
3, LOG_IF_EVERY_N(INFO, (size > 1024), 10) << "Got the " << COUNTER<<
"th big cookie";
4, LOG_FIRST_N(INFO, 20) << "Got the " << COUNTER << "th cookie";
上面的语句表示,当该语句只在首次执行了20次以后记录日志信息, COUNTER变量表示该语句被执行的次数。
1,判定大小关系
CHECK_EQ, CHECK_NE, CHECK_LE, CHECK_LT, CHECK_GE, CHECK_GT,使用这些宏需要注意类型一致,如果出现类型不一致的,可使用static_cast转换。
2,判定指针是否为空
3,判定字符串是否相等
CHECK_STREQ
,
CHECK_STRNE
,
CHECK_STRCASEEQ
,
CHECK_STRCASENE
。可进行大小写敏感或不敏感字符串来分别判定。
4,
判定浮点是否相等或相近
CHECK_DOUBLE_EQ
,CHECK_NEAR。这两个宏都需要指定一个可容忍的偏差上限。
*** SIGSEGV (@0x0) received by PID 17711 (TID 0x7f893090a6f0) from PID 0; stack trace: ***
PC: @ 0x412eb1 TestWaitingLogSink::send()
@ 0x7f89304f7f06 google::LogMessage::SendToLog()
@ 0x7f89304f3739 google::LogMessage::~LogMessage()
@ 0x4046f9 (unknown)
DLOG(INFO) << "Found cookies";
DLOG_IF(INFO, num_cookies > 10) << "Got lots of cookies";
DLOG_EVERY_N(INFO, 10) << "Got the " << COUNTER << "th cookie";
PCHECK(write(1, NULL, 2) >= 0) << "Write NULL failed";
F0825 185142 test.cc:22] Check failed: write(1, NULL, 2) >= 0 Write NULL failed: Bad address [14]