Loguru: 一款轻量且灵活的 C++ 日志记录库。## 简介
特别是,我希望生成的日志既可人类阅读,又可方便使用 grep 进行搜索。我也希望能够钩入日志记录过程,在应用程序中将一些更严重的消息打印到屏幕上(用于开发目的)。
特性:
- 简单集成
- 只需要两个文件:
loguru.hpp 和 loguru.cpp。
- 可以编译和链接
loguru.cpp 或仅在自己的 .cpp 文件中包含 #include <loguru.cpp>。
- 小巧、简单的库。
- 很小的头文件,不包含
#include 语句,可实现快速编译(请参阅单独的标题)。
- 没有依赖项。
- 跨平台。
- 灵活:
- 用户可以安装日志记录的回调(例如在游戏中在屏幕上绘制日志消息)。
- 用户可以安装致命错误的回调(例如暂停附加的调试器或抛出异常)。
- 支持多个文件输出,可截断或追加:
- 例如,只包含最新运行的低级别日志文件(可读性高)。
- 例如,在最高级别下生成完整的日志文件,并在每次运行时追加。
- 具有完整功能:
- 级别。
- 支持断言:
CHECK_F(fp != nullptr, "Failed to open '%s'", filename)
- 支持中止:
ABORT_F("Something went wrong, debug value is %d", value)。
- 在中止时打印堆栈跟踪。
- 堆栈跟踪会进行一定程度的清理。
- 清理前: `some_function_name(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, s