Многопоточный журнал 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() потокобезопасной или нет.


person user1001870    schedule 06.12.2017    source источник


Ответы (1)


это из raw_logging.h

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

Он может регистрироваться только в stderr и предназначен только для целей отладки в низкоуровневом коде, поэтому RAW_LOG(INFO,"...") никогда не будет генерировать файлы журнала.

person T. Koller    schedule 23.10.2018