一个简单、仅头文件、线程安全的 C++ 日志记录器。
- 仅头文件: 只需包含
SimpleLogger.hpp即可轻松集成到任何项目中。 - 线程安全: 使用互斥锁来确保在多线程环境下的安全日志记录。
- 彩色控制台输出: 为不同的日志级别(INFO, WARN, ERROR)提供彩色的控制台输出,使日志更具可读性。
- 文件日志记录: 支持将日志消息同时输出到文件。
- 可配置的日志级别: 可以设置日志级别,以过滤掉不重要的日志消息。
- 跨平台: 支持 Windows 和类 Unix 系统。
由于这是一个仅头文件的库,您只需将 include/SimpleLogger.hpp 文件复制到您的项目中并包含它即可。
以下是一个基本的使用示例:
#include "SimpleLogger.hpp"
#undef FILE_
#define FILE_ "main"
#define INFO(...) SimpleLogger::Logger::instance().info("[",FILE_,"] ", __VA_ARGS__)
#define WARN(...) SimpleLogger::Logger::instance().warn("[",FILE_,"] ", __VA_ARGS__)
#define ERROR(...) SimpleLogger::Logger::instance().error("[",FILE_,"] ", __VA_ARGS__)
int main() {
// 获取日志记录器实例
auto& logger = SimpleLogger::Logger::instance();
// 初始化日志记录器,将日志记录到 "my_app.log" 文件中
// logger.set_logfile("my_app.log");
// 将日志级别设置为 "warn"
logger.set_loglevel(SimpleLogger::warn);
// --- 记录各种消息和类型 ---
INFO("应用程序正在启动...");
WARN("这是一个警告消息的演示。");
ERROR("这是一个错误消息的演示。");
INFO("应用程序正在关闭。");
return 0;
}设置日志文件的路径。如果提供了文件名,日志将被写入该文件。
设置日志记录的级别。
0: info (默认)1: warn2: error
您可以使用提供的 CMakeLists.txt 来构建和运行示例。
mkdir build
cd build
cmake ..
make
./SimpleLogger- C++17 编译器
- CMake (用于构建示例)
欢迎贡献!请 fork 该仓库,创建您的功能分支,提交您的更改,然后创建一个 pull request。
该项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。