【发布时间】:2016-02-23 08:09:47
【问题描述】:
当我使用时,我正在使用 glog 进行日志记录:
LOG(INFO) << "something";
它按预期工作,但是当我使用如下所示的多个日志时,它不会记录,直到程序停止。当程序停止时,它将按预期记录所有内容。
LOG(INFO) <<"111111111111111";
LOG(INFO) <<"222222222222222";
LOG(INFO) <<"333333333333333";
LOG(INFO) <<"444444444444444";
但这里令人困惑的是,当我多次使用 LOG(WARNING) 时,它可以完美运行,即,即使程序正在运行,它也会记录所有内容,这与之前在程序停止时记录所有内容的情况不同。
LOG(WARNING) <<"111111111111111";
LOG(WARNING) <<"222222222222222";
LOG(WARNING) <<"333333333333333";
LOG(WARNING) <<"444444444444444";
**非常感谢对此行为的任何帮助**
【问题讨论】:
-
INFO 流可能需要刷新。你试过
LOG(INFO).flush()之类的吗? -
@muXXmit2X 是的,我试过了,但问题是一样的,它会在我停止程序执行后将所有内容写入日志文件。我在 proxygen 库中使用它
-
当您登录到 stderr 而不是日志文件时,是否也会发生这种情况?
-
@muXXmit2X 不,它只使用日志文件将所有内容完美地记录到控制台,这个问题就在那里
-
@muXXmit2X 我在某个地方找到了使用 google::LogMessage::Flush() 但是当我使用它时出现此错误:
cannot call member function ‘void google::LogMessage::Flush()’ without object google::LogMessage::Flush();