本文主要是介绍快速的 C++ 日志库 spdlog,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
spdlog 网站 : https://isocpp.org/blog/2014/11/spdlog
spdlog 是一个快速的 C++ 日志库,只包含头文件,兼容 C++11。
特性:
- 非常快
- 只包含头文件
- 无需依赖第三方库
- 支持跨平台 - Linux / Windows on 32/64 bits
- 支持多线程
- 可对日志文件进行循环输出
- 可每日生成日志文件
- 支持控制台日志输出
- 可选的异步日志
- 支持日志输出级别
- 可自定义日志格式
示例代码:
#include <iostream>
#include "spdlog/spdlog.h"int main(int, char* [])
{namespace spd = spdlog;try{std::string filename = "spdlog_example";auto console = spd::stdout_logger_mt("console");console->info("Welcome to spdlog!") ;console->info() << "Creating file " << filename << "..";auto file_logger = spd::rotating_logger_mt("file_logger", filename, 1024 * 1024 * 5, 3);file_logger->info("Log file message number", 1);for (int i = 0; i < 100; ++i){auto square = i*i;file_logger->info() << i << '*' << i << '=' << square << " (" << "0x" << std::hex << square << ")";}// Change log level to all loggers to warning and abovespd::set_level(spd::level::WARN);console->info("This should not be displayed");console->warn("This should!");spd::set_level(spd::level::INFO);// Change format pattern to all loggersspd::set_pattern(" **** %Y-%m-%d %H:%M:%S.%e %l **** %v");spd::get("console")->info("This is another message with different format");}catch (const spd::spdlog_ex& ex){std::cout << "Log failed: " << ex.what() << std::endl;}return 0;
}
- 授权协议: MIT
- 开发语言: C/C++
- 操作系统: Windows Linux
这篇关于快速的 C++ 日志库 spdlog的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!