↩️返回主页
Github源码spdlog-github
注: 不建议使用安装package的方式,版本似乎比较旧,不能参照官方readme使用
git clone https://github.com/gabime/spdlog.git
cd spdlog && mkdir build && cd build
cmake .. && make -j
最新版本CMake需要版本3.11
查看当前cmake版本
cmake --version
如果编译时发生错误,建议先将git切换到v1.11.0的tag分支
git checkout v1.11.0
然后再执行cmake和make
然后可以install到系统库中
make install
如果显示权限不足则添加sudo前缀
sudo make install
#include "spdlog/spdlog.h"
#include "spdlog/sinks/rotating_file_sink.h"
auto max_size = 1048576 * 5;
auto max_files = 3;
auto fileDir = "/home/slamopto/log_test/myNodeLog.txt";
auto logger = spdlog::rotating_logger_mt("logger", fileDir, max_size, max_files);
logger->info("This is an info msg");
logger->error("This is an err msg");
注: spdlog存储在缓冲区,需要达到4kb才会写入文件一次(或者关闭软件会直接写入。不能直接断电,直接断电似乎会丢失缓存区的日志)。如果想要在某些特定的logger->info或其他写入后即刻刷新,需要添加如下语句手动进行刷新
logger->flush();
// Log an informational message
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");