一个基于spdlog的C++20日志库封装,提供简单易用的接口和编译期格式字符串生成。
- Header-only,无需编译
- 基于C++20和spdlog
- 编译期格式字符串生成
- 支持自定义分隔符
- 支持结构体格式化(通过std::formatter)
- 零运行时开销
- 线程安全
- 支持多种日志级别
- 支持文件和控制台输出
- C++20兼容的编译器
- spdlog(作为 submodule)
git clone https://github.com/yourusername/easy_logger.git
cd easy_logger
git submodule update --init --recursive
mkdir build && cd build
cmake ..
make install
请确保你的 include path 包含:
-
easy_logger 的头文件目录:
easy_logger/include
-
spdlog 的头文件目录:
easy_logger/3rd/spdlog/include
-
spdlog 需要启用的编译选项.
add_definitions(-DSPDLOG_USE_STD_FORMAT)
set(CMAKE_CXX_STANDARD 20)
例如 g++ 编译参数:
g++ -Ieasy_logger/include -Ieasy_logger/3rd/spdlog/include your_code.cpp
#include <easy_logger/logger.h>
int main() {
util::logger::easy_logger::get().init("app.log");
LOG_INFO("Hello, {}!", "World");
STM_INFO(1, 2, 3); // 输出: 1,2,3
return 0;
}
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- CRITICAL
欢迎提交Issue和Pull Request!
MIT License