GLOG сохраняет в файл только одно первое сообщение

я использую glog библиотека, но у меня проблема с печатью более одного сообщения в файл.

Когда я использую этот код:

std::string appPath = TUtil::ExePath() + "logs\\";
google::SetLogDestination(google::GLOG_INFO, std::string(appPath + "INFO").c_str());
google::SetLogDestination(google::GLOG_ERROR, "");
google::SetLogDestination(google::GLOG_FATAL, "");
google::SetLogDestination(google::GLOG_WARNING, "");

google::InitGoogleLogging("");

LOG(INFO) << "Info1";
LOG(INFO) << "Info2";
LOG(WARNING) << "Warning1";
LOG(ERROR) << "ERROR1";
//LOG(FATAL) << "FATAL1";

Я получаю этот файл журнала (вы можете видеть, что он отсутствует во всех сообщениях, кроме первого):

Log file created at: 2013/09/22 20:22:03
Running on machine: XXX
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I0922 20:22:03.047548  9512 test.cpp:36] Info1

Тем не менее, когда я раскомментирую LOG(FATAL), он печатает все сообщения:

Log file created at: 2013/09/22 20:39:52
Running on machine: XXX
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I0922 20:39:52.060691 34104 test.cpp:36] Info1
I0922 20:39:52.063691 34104 test.cpp:37] Info2
W0922 20:39:52.063691 34104 test.cpp:38] Warning1
E0922 20:39:52.063691 34104 test.cpp:39] ERROR1
F0922 20:39:52.066692 34104 test.cpp:40] FATAL1

И я совершенно не знаю, что может быть причиной этого. Это так просто — когда я печатаю fatal сообщение журнала, оно (и все перед ним) печатается в файл. Но когда нет fatal сообщение, только первое напечатано.

Кто-нибудь, возможно, сталкивался с подобной проблемой или знает, как ее решить?

4

Решение

Как и любой асинхронный регистратор, он сбрасывается только для приоритетных сообщений, вы должны вызвать google::LogMessage::Flush() написать все сообщения на выход.

2

Другие решения

FLAGS_logbufsecs = 0; решить проблему для меня. Но это может иметь некоторые проблемы с производительностью.
https://code.google.com/p/google-glog/issues/detail?id=52&может = 1&д = вровень

2

По вопросам рекламы [email protected]