spdlog 使用
1. 使用时的编译选项
1
2
3
4
5
6
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. 日志级别,日志格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#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
1
2
3
4
5
#include "spdlog/spdlog.h"
#include "spdlog/fmt/bundled/ranges.h"
logger->info ("vector: {}", fmt::join(vec, ", "));
SPDLOG_INFO("vector: {}", vec);
本文由作者按照 CC BY 4.0 进行授权