spdlog是一个开源的、快速的、仅有头文件的C++11 日志库,code地址在 https://github.com/gabime/spdlog ,目前最新的发布版本为0.14.0。它提供了向流、标准输出、文件、系统日志、调试器等目标输出日志的能力。它支持的平台包括Windows、Linux、Mac、Android。
spdlog特性:
(1)、非常快,性能是它的主要目标;
(2)、仅包括头文件;
(3)、日志的格式化处理使用开源的fmt库( https://github.com/fmtlib/fmt );
(4)、可选的printf语法支持;
(5)、非常快的异步模式(可选),支持异步写日志;
(6)、自定义格式;
(7)、条件日志;
(8)、多线程/单线程日志;
(9)、各种日志目标:可对日志文件进行循环输出;可每日生成日志文件;支持控制台日志输出(支持颜色);系统日志;Windows debugger;较容易扩展自定义日志目标;
(10)、支持日志输出级别:阈值级别既可以在运行时也可以在编译时修改。
以下是测试代码,主要来自spdlog/example/example.cpp:
#include "funset.hpp"#include <iostream>#include "spdlog/spdlog.h"#include "spdlog/fmt/ostr.h"namespace spd = spdlog;int test_spdlog_console(){ try { // Console logger with color auto console = spd::stdout_color_mt("console"); console->info("Welcome to spdlog!"); console->error("Some error message with arg{}..", 1); // Conditional logging example console->info_if(true, "Welcome to spdlog conditional logging!"); // Formatting examples console->warn("Easy padding in numbers like {:08d}",