spdlog 基本用法¶
项目地址:spdlog
spdlog 是一个快速的C++日志库,支持多种日志目标(控制台、文件、syslog等),具有丰富的格式化功能。以下是它的基本用法示例:
1. 引入头文件¶
2. 简单日志输出¶
3. 设置日志级别和格式¶
spdlog::set_level(spdlog::level::debug); // 设置全局日志级别
spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");
4. 创建不同类型的日志器¶
- 控制台彩色输出
- 文件日志(基本文件日志)
auto file_logger = spdlog::basic_logger_mt("file_logger", "logs/basic-log.txt");
file_logger->info("Logging to a file");
- 旋转文件日志
auto rotating_logger = spdlog::rotating_logger_mt("rotating_logger", "logs/rotating.txt", 1024*1024*5, 3);
rotating_logger->info("Rotating log file");
- 每日日志
auto daily_logger = spdlog::daily_logger_mt("daily_logger", "logs/daily.txt", 2, 30);
daily_logger->info("Daily log");
5. 多目标日志(多 sinks)¶
auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs/multisink.txt");
spdlog::logger logger("multi_sink", {console_sink, file_sink});
logger.set_level(spdlog::level::debug);
logger.warn("This message appears in both console and file");