Spdlog日志库快速上手
简单介绍Spdlog日志库的安装与使用.
简介
Very fast, header-only/compiled, C++ logging library.
Spdlog是非常快的c++
日志库。支持编译后链接使用以及仅仅使用头文件,即快速可集成进项目。
下载与使用
GitHub - gabime/spdlog: Fast C++ logging library.
Header only version
拷贝include
路径下的文件到项目中,注意要使用c++11
.
编译
1 | $ git clone https://github.com/gabime/spdlog.git |
CMake中使用spdlog
方法一
spdlog
路径任意
1 | # include spdlog |
方法二
spdlog
在当前项目的thirdpatry
文件夹下
1 | # 使用了相对路径 |
方法三
- 首先安装spdlog到全局路径如:
/usr/local/include
1
2
3
4
5
6$ git clone https://github.com/gabime/spdlog.git
$ cd spdlog
$ cmake -B build
$ cmake --build build
$ cd build
$ sudo cmake --install . --config Debug - 然后在项目里直接使用即可
Spdlog日志库的特性
支持多线程
可以创建线程安全的logger, 如:
1 | auto logger = spdlog::basic_logger_mt(...); |
以_mt
结尾意味着multi thread
。以_st
结尾意味着single thread
, 如:
1 | auto logger = spdlog::basic_logger_st(...); |
自定义日志格式以及等级
1 | // 日志等级 |
fmt格式的输出
Format String Syntax ‒ fmt 9.1.0 documentation
1 | std::string str = "abc"; |
还支持用户自定义数据结构的fmt输出. 文档连接
多种logger类型
有控制台、文件、异步等logger,详情见:https://github.com/gabime/spdlog/wiki/2.-Creating-loggers
自定义刷新
支持手动刷盘以及定时刷盘,详情见:https://github.com/gabime/spdlog/wiki/7.-Flush-policy
替换默认的logger
- 默认的logger输出到控制台,支持替换默认的logger.
spdlog::info
和spdlog::debug
等会使用默认的logger.
1 | spdlog::set_default_logger(some_other_logger); |