標志參數
|
類型
|
作用
|
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]