在前面对glog分别做了两次学习,请看C++的开源跨平台日志库glog学习研究(一).C++的开源跨平台日志库glog学习研究(二)--宏的使用,这篇再做个扫尾工作,算是基本完成了. 编译期断言 动态断言在调试过程中是一个很重要的手段,而且我们使用的也比较多.相应的,静态断言,也即是编译期断言随着模板编程.元编程的发展,也表现出了动态断言所没有的优势:在编译期完成断言检查,而不是等到运行时! 比如在glog的源码中,有如下代码(logging.h line 908): template <boo…
上一篇从整个工程上简单分析了glog,请看C++的开源跨平台日志库glog学习研究(一),这一篇对glog的实现代码入手,比如在其源码中以宏的使用最为广泛,接下来就先对各种宏的使用做一简单分析. 1. 日志输出宏 这里我们以一条最简单的日至输出为例说明: LOG(WARNING) << "This is a warning message"; 这里LOG是一个宏,其定义如下(logging.h line 487): #define LOG(severity) COMPACT…
作为C++领域中为数不多的好用.高效的.跨平台的日志工具,Google的开源日志库glog也算是凤毛麟角了.glog 是一个C++实现的应用级日志记录框架,提供了C++风格的流操作. 恰巧趁着五一我也学习研究了这个glog库,写个总结如下.走过路过的的各位牛人.高手可以忽略这篇文章了. 从code.google.com下载源码(在这里),在Visual Studio 2010中打开工程,如下: 可见只有四个工程,其中libglog和libglog_static分别是Windows下的动态库和静态…
1 引用头文件 加载库 #include <glog/include/logging.h> #pragma comment(lib,"libglog.lib") 2 初始化 FLAGS_log_dir = "./Log"; google::InitGoogleLogging("FQManageServer"); google::SetLogDestination(google::GLOG_INFO,"./log/FQMana…
1 glog下载地址 https://code.google.com/archive/p/google-glog/downloads glog-0.3.3.tar.gz 需要FQ,直接打不开 2 解压 提取 tar -xvf glog-0.3.3.tar.gz -C /usr/src 3 编译 安装 cd /usr/src/glog- ./configure make make install 安装完成 4 查看库文件 在/usr/local/lib 目录…
前言 最近在尝试阅读字节开源RPC框架Kitex的源码,看到日志库klog部分,果不其然在Go原生的log库的基础上增加了自己的设计,大体包括增加了一些格式化的输出.增加一些常用的日志级别等. 一番了解后,发现有不少开源的日志库也做了类似的事情,以补充原生log库的不足.因为Go原生的log库本身也比较简单,这篇文章先分析一下它的实现,为后续阅读Kitex的日志库klog做一下铺垫. 本次分析基于:GO SDK 1.18.1 /src/log/log.go的源码. log库的使用 结果如下: 第…
1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars 于2016年12月28日正式公开源码(源码地址:https://github.com/Tencent/mars,也可从本文文末的附件下载之,Android版演示程序可以从文末的附件中下载). 之前无论是微信团队还是手机QQ团队,都以腾讯公司的名义在Github开源了数个工程,但这些工程所受的关注度远不及Mar…
网上看到关于微信官方的跨平台跨业务的终端基础组件Mars的介绍文章,转载这这里.源代码: https://github.com/Tencent/mars作者:男人链接:https://zhuanlan.zhihu.com/p/24614843来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微…
日志能方便地诊断程序原因.统计程序运行数据,是大型软件系统必不可少的组件之一.本文将从设计上和功能上对比 C++ 语言常见的两款日志库: boost::log 和 google-glog . 设计 boost::log 的设计主要有日志器( Logger ).日志核心( Logging core ). Sink 前后端( frontend, backend )组成.日志文本以及日志环境由日志器( Logger )负责搜集,日志核心负责处理日志数据(例如全局过滤.将日志记录传递给 Sink ),…
收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力.Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行. 下载链接:http://home.tiscali.cz/~cz210552/webbenc…