代码来自陈硕开源代码库 muduo中
主要是在内存中自己开辟了一块内存 然后对基本数据的输入 进行了定义
self& operator<<(short);
self& operator<<(unsigned short);
self& operator<<(int);
self& operator<<(unsigned int);
self& operator<<(long);
self& operator<<(unsigned long);
self& operator<<(long long);
self& operator<<(unsigned long long);
self& operator<<(const char* str);
self& operator<<(const unsigned char* str);
self& operator<<(const std::string& v);
相比C++自带的STREAM 没有继承及太多改写
在胜任基本的输入输出任务 自然效率会高一些
然后基本的输出方面 需要记录写入的时间 日志级别和进程ID和名字等
采用生产消费者模式 多个产生日志的生产者产生日志投入队列,然后仅仅一个消费者写入BUFFER
BUFFER采用两个缓存写入日志进行替换,一个接受消费者写入 一个将日志序列化到磁盘中。
如果速度实在太快 可能考虑再创建一个到两个BUFFER 实践中这种情况应该极小概率发生。
然后日志的根据时间和文件的体积的临界值可自动创建新的日志文件