博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(P21)muduo_base库源码分析:日志类封装,StringPiece类
阅读量:4299 次
发布时间:2019-05-27

本文共 775 字,大约阅读时间需要 2 分钟。

文章目录

1.日志类封装

  • Logger使用时序图,具体解释见P20或者代码
    在这里插入图片描述
#define LOG_INFO if (muduo::Logger::logLevel() <= muduo::Logger::INFO) \  muduo::Logger(__FILE__, __LINE__).stream()LOG_INFO<<“info ...”;	// 使用方式muduo::Logger(__FILE__, __LINE__).stream()<<“info”;Logger => Impl => LogStream => operator<< FixedBuffer => g_output => g_flush
  • LogStream类图

    在这里插入图片描述

  • Logger类图

    在这里插入图片描述

  • 在FixedBuffer模板类中,假设给缓冲区data_中添加2个字节数据,data_指针是不会变的,因为他是缓冲区的首地址;

    在这里插入图片描述

const char* debugString();//增加\0,将当前数据变成字符串

在这里插入图片描述

  • eg:21\jmuduo\muduo\base\LogStream.cc

    21\jmuduo\muduo\base\LogStream.h

  • eg测试:21\jmuduo\muduo\base\tests\LogStream_test.cc

    21\jmuduo\muduo\base\tests\CMakeLists.txt

  • 测试:

    在这里插入图片描述

  • eg测试:21\jmuduo\muduo\base\tests\LogStream_bench.cc

    21\jmuduo\muduo\base\tests\CMakeLists.txt

  • 测试:性能基准测试,使用Boost单元测试框架

    在这里插入图片描述

2.StringPiece类

  • eg:21\jmuduo\muduo\base\StringPiece.h

转载地址:http://smiws.baihongyu.com/

你可能感兴趣的文章
C指针声明解读之左右法则
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>
iOS 如何放大按钮点击热区
查看>>
ios设备唯一标识获取策略
查看>>
获取推送通知的DeviceToken
查看>>
Could not find a storyboard named 'Main' in bundle NSBundle
查看>>
CocoaPods安装和使用教程
查看>>
Beginning Auto Layout Tutorial
查看>>
block使用小结、在arc中使用block、如何防止循环引用
查看>>
iPhone开发学习笔记002——Xib设计UITableViewCell然后动态加载
查看>>
iOS开发中遇到的问题整理 (一)
查看>>
Swift code into Object-C 出现 ***-swift have not found this file 的问题
查看>>
为什么你的App介绍写得像一坨翔?
查看>>
RTImageAssets插件--@3x可自动生成@2x图片
查看>>
iOS开发的一些奇巧淫技
查看>>
常浏览的博客和网站
查看>>
Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
查看>>
点击button实现Storyboard中TabBar Controller的tab切换
查看>>
Xcode 的正确打开方式——Debugging
查看>>
打包app出现的一个问题
查看>>