spdlog 是一个开源的、快速的、线程安全,仅有头文件的C++11 日志库 , 提供了向流、标准输出、文件、系统日志、调试器等目标输出日志的能力。支持跨平台包括Windows、Linux、Mac、Android等系统。
1. 特点:
快速性能高。
仅使用头文件 ,也可编译成库。
支持异步写日志。
支持自定义格式
支持设置日志输出级别。可在运行时或者编译时修改。
多线程/单线程日志;(单线程为_st函数,多线程为_mt函数)
支持自定义日志目标:可对日志文件进行循环输出;可每日生成日志文件;支持控制台日志输出(支持颜色);系统日志;Windows [debugger];较容易扩展自定义日志目标;
2. 逻辑结构:
-
spdlog log API :
对logger的封装,能够使用户方便简单的使用spdlog打印日志
-
logger : 日志记录器:
sync-logger: 日志处理入口,将第三方库fmt,格式化后的日志信息整理到log_msg结构体中,交给sink处理。
async-logger: 将log_msg消息交给线程池ÿ