Repolode
gabime

gabime/spdlog

快速的 C++ 日志库,支持格式化输出、异步模式以及轮转文件、控制台、syslog 等多种输出目标。

Star
29,703
Fork
5,341
未关闭 Issue
58
最近提交
18小时前

这是什么?

spdlog 是一个 C++ 日志库,用于把格式化后的日志消息输出到多种目标。它既可以作为纯头文件库直接引入,也可以通过 CMake 编译使用,消息格式化基于 fmt 库实现。

日志可以写入轮转文件、按日分割的文件、带颜色的控制台、syslog、Windows 事件日志、Windows 调试器以及 Qt 控件。日志级别支持运行时和编译期修改,也可以通过命令行参数或环境变量加载。可选的异步模式会把输出工作交给后台线程池处理;回溯缓冲区则会保存最近的调试消息,便于在出错时集中输出。

该库支持 Linux、各类 BSD、Solaris、AIX、Windows、macOS 和 Android,并可通过多个常见包管理器安装。

核心功能

  • 01支持纯头文件或通过 CMake 编译使用
  • 02基于 fmt 的消息格式化,支持自定义输出模板和自定义类型
  • 03提供轮转文件、按日文件、控制台、syslog 和 Windows 事件日志等输出目标
  • 04支持带后台线程池的异步日志
  • 05日志级别可在运行时或编译期控制,并可从环境变量或命令行加载
  • 06回溯缓冲区可在需要时输出最近的调试日志

适用场景

  • 为 C++ 服务端或桌面应用添加分级日志
  • 在长期运行的服务中把日志写入轮转文件
  • 通过异步日志器处理大量日志,减少对业务线程的影响
  • 在系统服务中把日志输出到 syslog 或 Windows 事件日志

快速上手

  1. 1

    克隆仓库

    git clone https://github.com/gabime/spdlog.git
  2. 2

    进入目录并创建构建文件夹

    cd spdlog && mkdir build && cd build
  3. 3

    使用 CMake 配置并构建

    cmake .. && cmake --build .

使用前须知

  • 元数据中未明确标识许可证,使用前请查看仓库中的许可证文件。

收录于专题

标签

常见问题

spdlog 是什么?
快速的 C++ 日志库,支持格式化输出、异步模式以及轮转文件、控制台、syslog 等多种输出目标。 spdlog 是一个 C++ 日志库,用于把格式化后的日志消息输出到多种目标。它既可以作为纯头文件库直接引入,也可以通过 CMake 编译使用,消息格式化基于 fmt 库实现。
spdlog 可以免费使用吗?用的什么许可证?
spdlog 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
spdlog 还在维护吗?
活跃维护中。spdlog 最近一次提交是在 2026年10月24日。
spdlog 适合用来做什么?
为 C++ 服务端或桌面应用添加分级日志 在长期运行的服务中把日志写入轮转文件 通过异步日志器处理大量日志,减少对业务线程的影响 在系统服务中把日志输出到 syslog 或 Windows 事件日志
spdlog 怎么安装和运行?
克隆仓库: git clone https://github.com/gabime/spdlog.git 进入目录并创建构建文件夹: cd spdlog && mkdir build && cd build 使用 CMake 配置并构建: cmake .. && cmake --build .
在哪里获取 spdlog?
源代码和安装说明在 GitHub 上:https://github.com/gabime/spdlog

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目