GLOG 仅保存到文件中,第一条消息
GLOG saves to file only one, first message
我正在使用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
消息时,只会打印第一条消息。
有没有人遇到过类似的问题,或者知道如何解决它?
与任何异步记录器一样,它只会刷新优先级消息,您必须调用google::LogMessage::Flush()
将所有消息写入输出。
FLAGS_logbufsecs = 0;为我解决问题。但它可能存在一些性能问题。https://code.google.com/p/google-glog/issues/detail?id=52&can=1&q=flush
相关文章:
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- C ++ pcl_ros:如何使用最新的 100 条消息生成点云
- 如何在 Win32 中用一条线连接 2 个文本框?
- C++ 如何在同一行中和在一条线上?
- 为什么 zmq 将多条消息打包到一个 TCP 帧中?
- 如何在SDL2窗口上使用Cairo绘制一条白色直线
- 在Opengl中绘制一条不显示C++的线
- 为什么当 while 循环中的 if 条件变为 false 时,我的函数不输出最后一条语句?
- 如何在OMNET++中收到来自前一个模块的所有消息后将一条消息发送到下一个模块
- 如何在另一条消息(M1)之前调用带有消息(M2)的lambda函数,但输出要"M2 M1"?
- 为什么 protobuf 只读取最后一条消息作为输入结果
- Win32 中是否有一条消息或通知来检测用户何时更改区域设置?
- 在C++,我收到一条消息"error: 'void*' is not a pointer-to-object type"
- C++ 有没有办法循环遍历一个向量,只有在完全搜索后才返回一条消息
- 我收到一条错误消息,显示"<<"标志"no operator matches these operands"
- 如果引发异常,则使外部C++函数返回一条消息
- 在一条UDP消息中发送两个数据块,而不复制数据块
- 我想在qt中单击(左或右)小部件时显示一条消息
- 如何确保在关闭连接之前成功发布最后一条AMQP消息
- 告诉窗口处理除一条消息外的所有消息