Skip to content

Latest commit

 

History

History
38 lines (20 loc) · 865 Bytes

README.md

File metadata and controls

38 lines (20 loc) · 865 Bytes

Logger

自己实现的一个简单的Logger

API

LOG_INIT(fileName)     // 初始化
LOG_UNINIT()           // 释放资源
LOG_LEVEL(logLevel)    // 设置级别
LOG(logLevel, ...)     // 打印日志

特点

  • 采用单例模式

    多线程懒汉模式,双检锁

  • 生产者消费者模型

    生产者线程有多个,调用LOG接口产生日志信息,消费者线程只有一个,把日志信息输出到文件或者打印

  • 队列使用STL的queue,内存自动变化

  • 退出消费者线程前清空队列,打印剩余日志信息,保证不丢失

  • 程序开始运行到结束只进行一次文件打开和关闭操作

限制

  • 日志信息打印的时间是国际标准时间

  • 生产者线程产生N个日志,消费者线程就会被通知N次,在频繁写入日志的情况下有一定性能开销