在C++开发项目中使用glog 记录程序运行日志,在一个for循环中想要将循环遍历解析的结果存入日志文件中,经测试发现循环的最后几次内容不能存到日志。于是写了一个测试程序如下
#include <glog/logging.h>
#include <iostream>
int main(int argc, char** argv){
google::InitGoogleLogging(argv[0]);
FLAGS_log_dir = "./log";
// FLAGS_logtostderr = 1;
FLAGS_alsologtostderr = 1;
for(int count = 0;count < 150;count++)
{
LOG(INFO) << "count = " << count;
std::cout << "count = " << count << std::endl;
}
return 0;
}
该程序运行结果显示:
- cout 和LOG输出到控制台的部分都符合预期:
.......
I20210723 14:17:04.005897 30611 glog_test.cpp:10] count = 131
count = 131
I20210723 14:17:04.005930 30611 glog_test.cpp:10] count = 132
count = 132
I20210723 14:17:04.005973 30611 glog_test.cpp:10] count = 133
count = 133
I20210723 14:17:04.006023 30611 glog_test.cpp:10] count = 134
count = 134
I20210723 14:17:04.006193 30611 glog_test.cpp:10] count = 135
count = 135
I20210723 14:17:04.006239 30611 glog_test.cpp:10] count = 136
count = 136
I20210723 14:17:04.006278 30611 glog_test.cpp:10] count = 137
count = 137
I20210723 14:17:04.006319 30611 glog_test.cpp:10] count = 138
count = 138
I20210723 14:17:04.006369 30611 glog_test.cpp:10] count = 139
count = 139
I20210723 14:17:04.006412 30611 glog_test.cpp:10] count = 140
count = 140
I20210723 14:17:04.006453 30611 glog_test.cpp:10] count = 141
count = 141
I20210723 14:17:04.006494 30611 glog_test.cpp:10] count = 142
count = 142
I20210723 14:17:04.006536 30611 glog_test.cpp:10] count = 143
count = 143
I20210723 14:17:04.006589 30611 glog_test.cpp:10] count = 144
count = 144
I20210723 14:17:04.006635 30611 glog_test.cpp:10] count = 145
count = 145
I20210723 14:17:04.006675 30611 glog_test.cpp:10] count = 146
count = 146
I20210723 14:17:04.006709 30611 glog_test.cpp:10] count = 147
count = 147
I20210723 14:17:04.006747 30611 glog_test.cpp:10] count = 148
count = 148
I20210723 14:17:04.006784 30611 glog_test.cpp:10] count = 149
count = 149
- LOG输出到文件:
.......
20210723 14:17:04.005856 30611 glog_test.cpp:10] count = 130
I20210723 14:17:04.005897 30611 glog_test.cpp:10] count = 131
I20210723 14:17:04.005930 30611 glog_test.cpp:10] count = 132
I20210723 14:17:04.005973 30611 glog_test.cpp:10] count = 133
I20210723 14:17:04.006023 30611 glog_test.cpp:10] count = 134
I20210723 14:17:04.006193 30611 glog_test.cpp:10] count = 135
I20210723 14:17:04.006239 30611 glog_test.cpp:10] count = 136
I20210723 14:17:04.006278 30611 glog_test.cpp:10] count = 137
I20210723 14:17:04.006319 30611 glog_test.cpp:10] count = 138
I20210723 14:17:04.006369 30611 glog_test.cpp:10] count = 139
I20210723 14:17:04.006412 30611 glog_test.cpp:10] count = 140
I20210723 14:17:04.006453 30611 glog_test.cpp:10] count = 141
I20210723 14:17:04.006494 30611 glog_test.cpp:10] count = 142
I20210723 14:17:04.006536 30611 glog_test.cpp:10] count = 143
I20210723 14:17:04.006589 30611 glog_test.cpp:10] count = 144
I20210723 14:17:04.006635 30611 glog_test.cpp:10] count = 145
I20210723 14:17:04.006675 30611 glog_test.cpp:10] count = 146
从结果可以看出输出到文件的只能记录到146,还有3条记录没记录上,而终端输出结果又是正确的,这就很疑惑?
备注:当前glog 版本为0.6.0版本。