19.muduo学习笔记之base_LogFile.{h&cc}

1. 类说明

1. 功能

  • muduo的文件日志类
  • 这里用到了FileUtil和ProcessInfo

2. 继承

  1. noncopyable

2. 成员变量说明

  1. basename_
    • string类型的文件名
  2. rollSize_
    • 日志文件达到rollSize_就换一个新文件
  3. flushInterval_
    • 日志写入间隔时间
  4. checkEveryN_
    • 看count_的说明
  5. count_
    • 计数器,当它等于checkEveryN_的时候,会检测是否需要换一个新的日志文件,即是否达到滚动条件
    • 这个是append()的时候+1
  6. mutex_
    • 锁指针
  7. startOfPeriod_
    • time_t类型,开始记录日志时间
  8. lastRoll_
    • time_t类型,上一次滚动日志文件时间
  9. lastFlush_
    • time_t类型,上一次日志写入文件时间
  10. file_
    • FileUtil::AppendFile类型的指针
  11. kRollPerSeconds_
    • 一天的秒数,意思就是过1天滚动一次日志

3. 成员函数说明

1. 普通

  1. 构造函数
    • 初始化变量,断言basename中没有’/’,调用rollFile()
  2. 析构函数
    • 默认析构
  3. append(const char* logline, int len)
    • 调用append_unlocked()
  4. flush()
    • 调用file_.flush()
  5. rollFile()
    • 这里用到的"now / kRollPerSeconds_ * kRollPerSeconds_;",是为了对齐到kRollPerSeconds_的整数倍,也就是把时间调整到当天零点
    • 调用标准库unique_ptr的reset(),换一个新文件

2. 私有

  1. append_unlocked(const char* logline, int len)
    • 调用file_->append(),把数据写入到文件中,上一篇有讲
    • 有调用rollFile()的地方
  2. getLogFileName(const string& basename, time_t* now)
    • 简单来说就是生成log文件名,格式为basename+时间+主机名+进程名+.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值