禁用 glog 的“LOG(INFO)”日志记录

新手上路,请多包涵

我正在尝试优化我的 c++ 程序。它使用咖啡。

执行我的程序时,caffe 每 15 分钟输出大约 1GB (!) 的信息日志。我怀疑这会显着影响效率。但是我还没有找到如何关闭注销。在 这个问题 中,有人建议手动设置 FLAGS_v

使用以下代码,我可以按级别禁用 VLOG 日志,但 LOG(x) 日志不受影响。

main() 中的第一行:

 FLAGS_v = 1; //disables vlog(2), vlog(3), vlog(4)
VLOG(0) << "Verbose 0";
VLOG(1) << "Verbose 1";
VLOG(2) << "Verbose 2";
VLOG(3) << "Verbose 3";
VLOG(4) << "Verbose 4";
LOG(INFO) << "LOG(INFO)";
LOG(WARNING) << "LOG(WARNING)";
LOG(ERROR) << "LOG(ERROR)";

输出:

 WARNING: Logging before InitGoogleLogging() is written to STDERR
I0523 19:06:51.484634 14115 main.cpp:381] Verbose 0
I0523 19:06:51.484699 14115 main.cpp:382] Verbose 1
I0523 19:06:51.484705 14115 main.cpp:386] LOG(INFO)
W0523 19:06:51.484710 14115 main.cpp:387] LOG(WARNING)
E0523 19:06:51.484715 14115 main.cpp:388] LOG(ERROR)

还有另一个 flag 我不知道吗?我正在考虑评论每 LOG(INFO) 行,但我想要一个更优雅的解决方案。 (我更喜欢 C++ 解决方案而不是命令行标志解决方案)。

原文由 benk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

这适用于 C++ 源代码。

 google::InitGoogleLogging("XXX");
google::SetCommandLineOption("GLOG_minloglevel", "2");

原文由 Qi Cai 发布,翻译遵循 CC BY-SA 3.0 许可协议

你需要设置你的环境变量

GLOG_minloglevel=2

然后运行您的可执行文件。

您可以 在此处 找到更多信息(在此页面的底部有一节关于使用宏定义从您的代码中剥离 LOG() s)。

原文由 Shai 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏