Skip to content

catyugu/SimpleLogger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleLogger

一个简单、仅头文件、线程安全的 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;
}

API 参考 📖

set_logfile(const std::string& log_filename = "")

设置日志文件的路径。如果提供了文件名,日志将被写入该文件。

set_loglevel(int log_level = 0)

设置日志记录的级别。

  • 0: info (默认)
  • 1: warn
  • 2: error

构建示例 🛠️

您可以使用提供的 CMakeLists.txt 来构建和运行示例。

mkdir build
cd build
cmake ..
make
./SimpleLogger

依赖

  • C++17 编译器
  • CMake (用于构建示例)

贡献 🤝

欢迎贡献!请 fork 该仓库,创建您的功能分支,提交您的更改,然后创建一个 pull request。

许可证 📄

该项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors