2025-11-26 spdlog 快速入门与实践

前言

spdlog 是一个高性能的 C++ 日志库,基于 fmt 提供格式化,支持同步与异步模式、日志切割(rotation)与多种 sink(控制台、文件、syslog 等)。它设计轻量、易集成,性能接近手写日志,适合对吞吐量和延迟有要求的服务端应用。

示例代码:

#include "spdlog/spdlog.h"
#include "spdlog/sinks/basic_file_sink.h"

int main() {
  auto logger = spdlog::basic_logger_mt("file_logger", "logs/app.log");
  spdlog::info("Hello {}!", "world");
  logger->error("Error code: {}", 42);
  return 0;
}

安装与集成

可通过 vcpkg、conan 或直接在 CMake 中 add_subdirectory(spdlog) 引入。常见配置包括启用异步日志以减少 I/O 阻塞、设置日志轮转与保留策略、以及自定义输出 pattern(时间、线程、文件名、行号等)。

实践小贴士

  1. 开发阶段用同步 logger 便于调试;生产环境用异步并配置合理的队列大小和 flush 策略,防止丢失关键日志;
  2. 针对高频日志考虑降低日志级别或聚合;
  3. 利用多种 sink 同时输出到控制台与文件,便于实时观察与持久化。

总结

spdlog 在性能与易用性之间取得良好平衡,是现代 C++ 项目推荐的日志方案。开始使用很简单,随着需求增长可以逐步调整异步、切割与格式化配置。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容