当前位置: 首页 > wzjs >正文

莞城区小程序app网站开发成都成仁路网站建设

莞城区小程序app网站开发,成都成仁路网站建设,企业网站建设 哪个公司做得好,湖南省住房与城乡建设部网站本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 MotivationProcess glog版本为:https://github.com/google/glog/archive/…

在这里插入图片描述本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。

文章目录

  • Motivation
  • Process

glog版本为:https://github.com/google/glog/archive/refs/tags/v0.6.0.zip

Motivation

我们项目本身的日志都是使用trpc的日志模块打印的,依赖项目中的日志是使用glog打印的,希望将日志等级调整为INFO,调试依赖项目中的代码。

但是实际的测试过程中发现在代码中添加下述代码,且确保未开启NDEBUG的情况下:

 FLAGS_stderrthreshold = 0;FLAGS_minloglevel = 0;FLAGS_v = 4;

所有的LOG(INFO)与VLOG无法打印,但是LOG(WARNING)和LOG(ERROR)可以正常打印。

因为本身是一个推进必要进度之外的事情,所以希望用最快的方式解决,google后没有发现类似的问题,差一点点就想把所有外部框架的日志直接宏替换了。。。但是确实太丑陋的了,虽然我不是一个对代码有特别高追求的人,但是实在是太挫了,还是花了两个小时去解决这个问题。

具体的思路是大概了解下glog框架的原理,然后直接gdb去对比LOG(INFO),VLOG和LOG(WARNING),LOG(ERROR)执行路径的区别,确定没有打印的实际原因是什么。

glog的大概原理是在记录LOG时生成一个LogMessage对象,在析构函数中Flush,具体可以参考[1]。

Process

第一个断点打在304行,单步调试进去
请添加图片描述
发现LOG(INFO)没有进入google::LogMessage::Init,直接跳到了NullStream的构造流程
请添加图片描述

请添加图片描述

而LOG在宏展开后其实是COMPACT_GOOGLE_LOG_INFO
在这里插入图片描述

而后的LOG(WARNING),LOG(ERROR)可以正常的进入google::LogMessage::Init

这个时候去找NullStream的构造流程,发现GOOGLE_STRIP_LOG宏其实控制了NullStream的构造流程
请添加图片描述

去我们的项目里面搜了一个,不知道哪个哥在一个极其隐蔽的地方塞了一个GOOGLE_STRIP_LOG=1,这就会导致LOG(INFO)默认构造NullStream,从而导致不执行实际的LogMessage init和flush流程,也就不打印日志了。

至于为什么VLOG也无法打印,可以从源码中看到VLOG其实展开后也是LOG(INFO),这就全部说的通了
请添加图片描述

只需要在logging.h前声明GOOGLE_STRIP_LOG为0就可以了,然后所有的问题就解决了。

#define GOOGLE_STRIP_LOG 0
#include <glog/logging.h>

参考:

  1. glog源码阅读笔记

文章转载自:

http://7jIRijlv.pjqxk.cn
http://5wfUGR5m.pjqxk.cn
http://xL69IQu4.pjqxk.cn
http://s05QmaNp.pjqxk.cn
http://x2J0qM5p.pjqxk.cn
http://Xpk0e8PX.pjqxk.cn
http://EfdxEIrf.pjqxk.cn
http://jQy0sNnz.pjqxk.cn
http://Lx4JLJUP.pjqxk.cn
http://QWDUthY0.pjqxk.cn
http://Lv0tU0xa.pjqxk.cn
http://6KHePtun.pjqxk.cn
http://aTD8VHXa.pjqxk.cn
http://isVFLKWb.pjqxk.cn
http://kNN8VHFz.pjqxk.cn
http://dx7Qs3eP.pjqxk.cn
http://MgjbhkIb.pjqxk.cn
http://NqxvTKKq.pjqxk.cn
http://0oayBhG2.pjqxk.cn
http://eg5FSF7C.pjqxk.cn
http://cmmjTTZp.pjqxk.cn
http://5zPnA7Yv.pjqxk.cn
http://P4t7Xc2K.pjqxk.cn
http://v9otJmqf.pjqxk.cn
http://kzhmPJVd.pjqxk.cn
http://3FX02kHm.pjqxk.cn
http://YawJm2Im.pjqxk.cn
http://FXCv3ALA.pjqxk.cn
http://uoWAOm2B.pjqxk.cn
http://JfaK4i7Y.pjqxk.cn
http://www.dtcms.com/wzjs/744619.html

相关文章:

  • 做网站全是别人的链接合肥做企业网站
  • 贵州做网站kuhugz加强理想信念教育主题网站建设
  • 北京互联网公司招聘郑州官网网站推广优化公司
  • 网站备案信息更改自己怎么设计公园
  • 使用ftp修改网站图片垂直类门户网站
  • 沈阳黄页查询电话新网站排名优化
  • 家居网站模板乐陵森
  • 珠海建站模板搭建中天建设招标网站
  • 没有网站做优化东营市建设项目工伤保险是哪个网站
  • 广州市学校网站建设公司网络推广渠道排名
  • 家用电脑如何做网站wordpress force ssl
  • 在线一键免费生成网页网站网站赚钱方法
  • 深圳网站建设微信商城开发免费推广网站58
  • 个人或主题网站建设实验体会公司起名字大全免费四字
  • 毕业设计做网站简单吗wordpress怎么安装老版编辑器
  • 东莞做微网站建设价格网站转移后后台无法登陆
  • 怎么给网站开发后台设计公司网站价格
  • 招标网站开发深圳企业网站建设收费标准
  • 要建设一个网站需要什么手续费网页优化包括
  • 吉林长春seo网站建设网站优化大连网站建设学校
  • 头条搜索站长平台wordpress 会议
  • 怎样可以免费做网站功能型网页设计
  • 长春火车站有几个软件网站建设的目的
  • 什么可以放置网站内容互动对战平台
  • 巴中网站建设网站推广制作网站好的公司
  • 厦门十家较好的网站建设公司建设酒类产品网站的好处
  • 国外做饮料视频网站北京中交建设工程咨询有限公司网站
  • 个人做网站要注意什么罗湖商城网站设计公司
  • 网站怎么做熊掌号网站建设的平台
  • 网站开发 流程图付费网站建设模板