这个项目能做什么
spdlog是一个高性能的C++日志库,专为速度、灵活性和易用性而设计。它可以作为仅头文件库使用,也可以编译以加快构建速度,只需C++11编译器即可。该库基于fmt格式化库构建,提供功能丰富的输出格式化,支持位置参数、填充、对齐和自定义类型格式化器。
主要特性包括同步和异步日志模式、多线程和单线程记录器,以及多种日志目标,如轮转日志文件、每日日志文件、带颜色支持的控制台输出、syslog、Windows事件日志、Windows调试器输出和Qt组件。可以实现自定义sink以将库扩展到其他目标。日志级别可在运行时或编译时过滤,也可以从环境变量或命令行参数加载级别。
该库支持回溯功能,调试消息存储在环形缓冲区中,可按需转储——这对于在发生错误时显示最近的调试输出非常有用。其他实用工具包括定期刷新已注册记录器、用于时间测量的秒表支持、十六进制格式的二进制数据日志、用于线程本地键值对的映射诊断上下文(MDC),以及日志事件的用户自定义回调。自定义错误处理程序以及文件打开/关闭事件处理程序提供了对日志行为的进一步控制。
spdlog是跨平台的,支持Linux、FreeBSD、OpenBSD、Solaris、AIX、Windows(MSVC 2013+、Cygwin)、macOS(Clang 3.5+)和Android。它可通过众多包管理器获得,包括apt、Homebrew、MacPorts、FreeBSD pkg、dnf、emerge、pacman、zypper、vcpkg、conan、conda和build2。在配备Intel i7-4770 CPU的Ubuntu 64位系统上进行的基准测试显示,基本日志记录的同步单线程吞吐量约为每秒570万条消息,而异步模式在10线程竞争且采用覆盖策略时,可达每秒260万条消息。文档可在项目wiki中获取。
评论
0 评分人数达到10人后显示
登录后参与讨论。