Muduo源码笔记系列:
muduo源码阅读笔记(2、对C语言原生的线程安全以及同步的API的封装)
muduo源码阅读笔记(6、ExevntLoop和Thread)
muduo源码阅读笔记(7、EventLoopThreadPool)
前言
Muduo的日志设计的非常简单,日志的格式是固定的,一条日志包括:[日志头,日志体,日志尾]。实际上,参考工业级日志的使用来看,日志还应该能支持格式变更,即用户可以自定义日志的格式,选择自己关心的日志条目进行输出,或者在日志中添加一些额外的字符来修饰日志。考虑到Muduo的核心是网络库,而不是日志库,这些点就不过多深入讨论。
日志消息体输出到Impl::stream_(简化日志的使用方式(宏定义 + 临时对象的编程技巧)
调用匿名对象的stream()成员函数,会返回一个类型为LogStream的引用也即Impl::stream_对象本身,muduo对LogStream类进行了详细的>>操作符重载,这部分代码简单易读,就不详细赘述了,这样就能将字符串类型/数值类型的数据使用>>操作符输出到Impl::stream_上(类似std::cout的使用)
日志消息体的输出: