spdlog 使用

1. 使用时的编译选项

if(CMAKE_BUILD_TYPE STREQUAL "Release")
  add_compile_definitions(-DSPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_WARN)
  add_compile_definitions(-DNDEBUG)
else()
  add_compile_definitions(-DSPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE)
endif()

2. 日志级别,日志格式

#include <spdlog/spdlog.h>

#ifdef NDEBUG
  spdlog::set_level(spdlog::level::warn);  // disable spdlog for performance test
#else
  spdlog::set_level(spdlog::level::info);
  spdlog::set_pattern("%H:%M:%S.%e %t %s %! %v");
#endif

// back to default format
// spdlog::set_pattern("%+");

// alignment: 左对齐, 右对齐
spdlog::info("{:>8} aligned, {:<8} aligned", "right", "left");

3. 使用技巧

3.1 打印 std::vector

#include "spdlog/spdlog.h"
#include "spdlog/fmt/bundled/ranges.h"

logger->info ("vector: {}", fmt::join(vec, ", "));
SPDLOG_INFO("vector: {}", vec);



    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • al-folio 本地部署记录(Ubuntu 24.04)
  • C++ Traits
  • 道格拉斯-普克算法(Douglas–Peucker algorithm)
  • CMake支持库收集
  • QGC代码架构解析:飞行前检查(起飞条件)