日志方案
同步日志方案:立即输出日志记录的方案才能继续执行其他任务。
异步日志方案:先抛出一个日志记录的任务到某个地方,不马上执行打印也不影响往下执行其他任务。
二者关键区别是产生日志记录并调用相关的日志任务接口之后,是否需要马上打印才能往下执行其他任务。
使用多线程的日志方案不一定是异步日志,多线程也能通过锁实现日志的串行打印。
使用单线程的也不一定是同步日志方案,也有可能通过网络通信将日志异步地抛给其他节点完成打印日志的任务。
Spdlog介绍
Spdlog是性能极高的C++日志库。
Spdlog的特点
零成本抽象:spdlog主要编程语言是C++,C++的设计理念之一就是零成本抽象。零成本抽象主要通过内联函数和模板实现。抽象意思是先放置一个大致的框架在代码中,等到真正使用的时候稍加输入和调用就能迅速地构建出要使用的复杂实例或数据结构,不用从0开始编写。零成本指的是相比起用C语言从0开始构建的实例,性能成本几乎一样,没有额外的资源开销,同时大大减少了开发成本。
可异步进行日志记录:把日志信息发送到线程池异步地进行处理,减少对主线程的影响。用户可以自定义线程的个数与队列的大小。如果队列已满可选:抛弃部分日志或者阻塞。
高效格式化:类似python的.format方法。
Spdlog的输出控制
Spdlog日志级别,日志级别非spdlog独有,由低到高(重要等级从轻到重):trace、debug、info、warn、error、critical。
S