当前位置:   article > 正文

C++程序使用Glog打印调试信息,输出程序崩溃的堆栈_glog堆栈c++

glog堆栈c++

1 下载安装glog

  1. 1 Git clone https://github.com/google/glog.git
  2. 2 cd glog
  3. 3 ./autogen.sh
  4. 4 ./configure --prefix=path(install)
  5. 5 make
  6. 6 make install

2 在CMakeLists.txt中添加glog

  1. find_package(Glog REQUIRED)
  2. include_directories(
  3. ${GLOG_INCLUDE_DIRS}
  4. )
  5. ## 把glog链接到库${PROJECT_LIB_NAME}中
  6. target_link_libraries(${PROJECT_LIB_NAME} glog)

3. 在C++ main函数中初始化配置glog

  1. // 扑捉到程序崩溃或者中断时,把相应的信息打印到log文件和输出到屏幕。
  2. void SignalHandler(const char *data, int size) {
  3. std::string glog_file = "./log/error.log";
  4. std::ofstream fs(glog_file, std::ios::app);
  5. std::string str = std::string(data, size);
  6. fs << str;
  7. fs.close();
  8. LOG(INFO) << str;
  9. }
  10. int main(int argc, char **argv) {
  11. FLAGS_colorlogtostderr = true; // log信息区分颜色
  12. FLAGS_logtostderr = 1; // 允许log信息打印到屏幕
  13. google::SetStderrLogging(google::GLOG_INFO); // 输出log的最低等级是 INFO (可以设置为WARNING或者更高)
  14. google::InstallFailureSignalHandler(); // 配置安装程序崩溃失败信号处理器
  15. google::InstallFailureWriter(&SignalHandler); // 安装配置程序失败信号的信息打印过程,设置回调函数
  16. google::InitGoogleLogging((const char *)argv[0]); // 用当前可执行程序初始化glog
  17. // 下面测试glog
  18. LOG(INFO) << "this is info.";
  19. LOG(WARNING) << "this is warning.";
  20. LOG(ERROR) <<"this is error.";
  21. google::SetStderrLogging(google::GLOG_WARNING); // 提高log输出等级为WARNING
  22. LOG(INFO) << "this is info.";
  23. LOG(WARNING) << "this is warning.";
  24. LOG(ERROR) <<"this is error.";
  25. // test
  26. int i = 0;
  27. int k = 10/i;
  28. }

e

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/245764
推荐阅读
相关标签
  

闽ICP备14008679号