glog沒有在-dir_log位置生成日誌文件

-dir_log是glog一個內置的gflag,如果不設置的話,默認的日誌文件會生成在/tmp目錄下。

./mytest  -dir_log=./logs

但是發現設置了以後,運行沒有效果,文件還是生成在了/tmp下。main函數源碼如下:

int main(int argc, char *argv[]) {
  glog::InitLogging("mytest");
  std::cout << FLAGS_log_dir << std::endl;
  gflags::ParseCommandLineFlags(&argc, &argv, true);
  
  //...
}

在源碼裏打印了FLGAS_log_dir發現,總是打印/tmp。

想了一下發現,FLAGS_log_dir是來自gflag的解析結果的,所以應該在InitLogging之前就ParseCommandLineFlags。改成如下就成功設置了log_dir:

int main(int argc, char *argv[]) {
  gflags::ParseCommandLineFlags(&argc, &argv, true);
  glog::InitLogging("carsim");
  std::cout << FLAGS_log_dir << std::endl;
  //...
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章