开源项目之C++日志框架 Google Glog
2012-09-14 22:10
453 查看
Google Glog 是一个C++语言的应用级日志记录框架,提供了 C++ 风格的流操作和各种助手宏。
可以使用google的glog开源库进行日志输出。工程如图:
![](http://img.my.csdn.net/uploads/201209/12/1347439245_2578.jpg)
libglog是动态库,logging_unittest针对libglog的测试。
libglog_static是静态库,logging_unittest_static针对libglog_static的测试。
logging_unittest和logging_unittest_static是同一项目。
暂不讨论Glog的原理,直接分析如何使用它。
主要的代码:
深夜了,该洗洗睡了,函数就不帖出来了,想研究的下载源码包吧!
学习的目的是成熟!~
源码包(可直接编译)
可以使用google的glog开源库进行日志输出。工程如图:
![](http://img.my.csdn.net/uploads/201209/12/1347439245_2578.jpg)
libglog是动态库,logging_unittest针对libglog的测试。
libglog_static是静态库,logging_unittest_static针对libglog_static的测试。
logging_unittest和logging_unittest_static是同一项目。
暂不讨论Glog的原理,直接分析如何使用它。
主要的代码:
int main(int argc, char **argv) { #ifdef H***E_LIB_GFLAGS ParseCommandLineFlags(&argc, &argv, true); #endif // Test some basics before InitGoogleLogging: //初始化捕捉流 CaptureTestStderr(); //根据日志的级别进行输出 LogWithLevels(FLAGS_v, FLAGS_stderrthreshold, FLAGS_logtostderr, FLAGS_alsologtostderr); //模拟参数 LogWithLevels(0, 0, 0, 0); // simulate "before global c-tors" //获得信息 const string early_stderr = GetCapturedTestStderr(); //初始化 InitGoogleLogging(argv[0]); //运行指定的基准 RunSpecifiedBenchmarks(); FLAGS_logtostderr = true; //空函数 InitGoogleTest(&argc, argv); #ifdef H***E_LIB_GMOCK InitGoogleMock(&argc, argv); #endif // so that death tests run before we use threads CHECK_EQ(RUN_ALL_TESTS(), 0); //初始化捕捉流 CaptureTestStderr(); // re-emit early_stderr 输出消息 LogMessage("dummy", LogMessage::kNoLogPrefix, GLOG_INFO).stream() << early_stderr; //输出信息 信息包括警告信息和错误信息 TestLogging(true); TestRawLogging(); TestLoggingLevels(); TestLogString(); TestLogSink(); TestLogToString(); TestLogSinkWaitTillSent(); TestCHECK(); TestDCHECK(); TestSTREQ(); // TODO: The golden test portion of this test is very flakey. EXPECT_TRUE( MungeAndDiffTestStderr(FLAGS_test_srcdir + "/src/logging_unittest.err")); FLAGS_logtostderr = false; TestBasename(); TestSymlink(); TestExtension(); TestWrapper(); TestErrno(); TestTruncate(); ShutdownGoogleLogging(); fprintf(stdout, "PASS\n"); return 0; }
深夜了,该洗洗睡了,函数就不帖出来了,想研究的下载源码包吧!
学习的目的是成熟!~
源码包(可直接编译)
相关文章推荐
- 优秀开源项目之五:C++日志框架 Google Glog
- 开源项目之C++日志框架 Google Glog
- google-glog:开源c++轻量级日志库
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- C++google基于开源的新c++测试框架发布
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
- C++测试利器--google test开源测试框架
- iOS开源项目之日志框架CocoaLumberjack
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- Google开源C++单元测试框架Google Test【转】
- 玩转Google开源C++单元测试框架Google Test系列(gtest)
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
- (转)玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest