GLOG多线程日志

时间:2017-12-06 13:34:02

标签: c++ logging glog

我想使用Glog lib来记录我的应用程序日志。我的应用程序是多线程的。作为glog中的建议我应该使用RAW_LOG来保证线程安全。这是我的示例代码。

  #include "stdafx.h"
  #define GLOG_NO_ABBREVIATED_SEVERITIES
  #include <windows.h>
  #include <glog/logging.h>
  #include <glog/raw_logging.h>
  using namespace std;

  int main(int /*argc*/, char** argv)
  {
      FLAGS_alsologtostderr = 1;

      google::SetLogDestination(google::GLOG_INFO, "E:/mylog.log");
      google::InitGoogleLogging(argv[0]);
      //LOG(INFO) << "Infomration";
      RAW_LOG_INFO("Test");

      RAW_LOG(INFO,"This is INFO");
      RAW_LOG(WARNING,"This is WARNING");
      RAW_LOG(ERROR, "This is Error");
      return 0;
   }

但是如果我使用RAW_LOG,则不生成日志文件,但如果我使用LOG()函数,则生成日志文件。

请告诉我如何使用RAW_LOG功能或LOG()函数是否为线程安全。

1 个答案:

答案 0 :(得分:0)

这是来自raw_logging.h

// * it logs straight and ONLY to STDERR w/o buffering

它只能登录到stderr,并且仅用于底层代码的调试目的 因此RAW_LOG(INFO,"...")将永远不会生成任何日志文件。