1. 类说明
1. 功能
- muduo的文件日志类
- 这里用到了FileUtil和ProcessInfo
2. 继承
- noncopyable
2. 成员变量说明
- basename_
- rollSize_
- flushInterval_
- checkEveryN_
- count_
- 计数器,当它等于checkEveryN_的时候,会检测是否需要换一个新的日志文件,即是否达到滚动条件
- 这个是append()的时候+1
- mutex_
- startOfPeriod_
- lastRoll_
- lastFlush_
- file_
- FileUtil::AppendFile类型的指针
- kRollPerSeconds_
3. 成员函数说明
1. 普通
- 构造函数
- 初始化变量,断言basename中没有’/’,调用rollFile()
- 析构函数
- append(const char* logline, int len)
- flush()
- rollFile()
- 这里用到的"now / kRollPerSeconds_ * kRollPerSeconds_;",是为了对齐到kRollPerSeconds_的整数倍,也就是把时间调整到当天零点
- 调用标准库unique_ptr的reset(),换一个新文件
2. 私有
- append_unlocked(const char* logline, int len)
- 调用file_->append(),把数据写入到文件中,上一篇有讲
- 有调用rollFile()的地方
- getLogFileName(const string& basename, time_t* now)
- 简单来说就是生成log文件名,格式为basename+时间+主机名+进程名+.log