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() 関数がスレッドセーフかどうかを教えてください。