1. 介绍
https://github.com/gabime/spdlog.git
- c++11
- 只有头文件
- 跨平台,linux,windows,macos,android
- 丰富的格式化,自定义格式化
- 异步模式
- 多/单线程logger
- 多日志目标:滚动,按天分类,控制台彩色,syslog,windows event log/debugger, 自定义扩展
- 日志过滤
- 从参数和环境变量中加载日志等级
- backtrace支持
- 支持1条日志入多个sink
2. 基本使用
搬过来的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include "spdlog/spdlog.h"
int main() { spdlog::info("Welcome to spdlog!"); spdlog::error("Some error message with arg: {}", 1);
spdlog::warn("Easy padding in numbers like {:08d}", 12); spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42); spdlog::info("Support for floats {:03.2f}", 1.23456); spdlog::info("Positional args are {1} {0}..", "too", "supported"); spdlog::info("{:<30}", "left aligned");
spdlog::set_level(spdlog::level::debug); spdlog::debug("This message should be displayed..");
spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");
SPDLOG_TRACE("Some trace message with param {}", 42); SPDLOG_DEBUG("Some debug message"); }
|
3. 有意思的地方
3.1. cmake
- 还支持这样用的
cmake_minimum_required(VERSION 3.10...3.21)
, 3.12开始支持,policy_max version,影响策略设定。
- 先写好 version.h 文件,用cmake从里边读出来,再放到
project()
中。