欢迎来到威聚
威扬盘搜

quill

框架 C++ MIT AI 总结 推荐 ★5 中等

更新于 2026-09-03 15:41:40 · 创建于 2026-09-03 15:39:35

quill:低延迟的异步 C++ 日志库

quill 是一款专为低延迟、性能敏感型应用设计的高性能异步 C++ 日志库。它的核心思路是把日志的格式化与 I/O 操作都移交给后台线程,主线程只做极轻量的入队,从而把日志对业务路径的性能影响降到最低。

核心能力

  • 异步架构:前端(Frontend)在调用线程把日志对象化并入队,后端(Backend)后台线程负责格式化与落盘/输出,主线程几乎零阻塞。
  • 低延迟:针对高频交易、游戏引擎、实时系统等对尾延迟敏感的场景优化,避免日志导致的卡顿尖刺。
  • 易用 API:以 quill::Backend::start() 启动后端,用 quill::Frontend::create_or_get_logger 取 logger,随后 LOG_INFO(logger, "Hello from {}", ...) 即可,宏风格贴近常见日志库。
  • 多 sink:内置 ConsoleSink、文件 sink 等,可按需组合输出目标。

适用场景

  • 高频交易、行情系统的纳秒级敏感日志。
  • 游戏引擎、仿真、实时服务中需要持续打点但不想拖累帧率/吞吐的环节。
  • 任何追求稳定尾延迟、反感同步日志阻塞的 C++ 项目。

上手与二开建议

  1. 在程序启动早期调用 quill::Backend::start(),再创建 logger 使用。
  2. 把日志密集路径迁到异步 sink,对比同步库观察 P99 延迟改善。
  3. 二开/集成:可自定义 sink 与格式化器;注意后端线程生命周期,程序退出前保证日志刷盘。

注意事项

  • 上手难度中等:API 简单,但异步模型需注意启动顺序与优雅退出。
  • 协议为 MIT,集成到产品时按常规引用即可。

按更新时间依次阅读