自己实现的一个简单的Logger
LOG_INIT(fileName) // 初始化
LOG_UNINIT() // 释放资源
LOG_LEVEL(logLevel) // 设置级别
LOG(logLevel, ...) // 打印日志-
采用单例模式
多线程懒汉模式,双检锁
-
生产者消费者模型
生产者线程有多个,调用LOG接口产生日志信息,消费者线程只有一个,把日志信息输出到文件或者打印
-
队列使用STL的queue,内存自动变化
-
退出消费者线程前清空队列,打印剩余日志信息,保证不丢失
-
程序开始运行到结束只进行一次文件打开和关闭操作
-
日志信息打印的时间是国际标准时间
-
生产者线程产生N个日志,消费者线程就会被通知N次,在频繁写入日志的情况下有一定性能开销