这个项目能做什么

# StormByte Logger StormByte Logger 是 StormByte C++ 套件的流式日志库,面向 C++26 和 CMake 3.28+ 构建。它提供 `Log` 门面,支持 `operator<<` 流式输出、严重级别、可自定义头部、线程局部组件、分组、ANSI 颜色、脱敏、十六进制转储、人类可读数字,以及线程安全的 `ThreadedLog` 变体。 ## 主要特性 - **级别**:从 `LowLevel` 到 `Fatal` 有序排列;`Warning`、`Error` 和 `Fatal` 始终输出。 - **头部**:格式标记如 `%L`(级别)、`%T`(时间戳)、`%i`(线程 id)、`%c`(组件路径)、`%g`(分组)。 - **组件**:线程局部栈,用于层级路径(例如 `Multimedia/Decoder`)。 - **作用域**:粘性路径门面,适用于避免 TLS 栈操作的库。 - **分组**:行作用域标签,由换行符清除。 - **颜色**:按级别或组件路径设置 ANSI 颜色,默认禁用。 - **格式**:持久化的通用/组件格式,以及嵌套的临时格式。 - **脱敏**:保留前/后 N 个字符或完全掩码。 - **十六进制/二进制**:文本十六进制转储,以及用于二进制负载的 Base64/HexDump。 - **ThreadedLog**:每个逻辑行一把锁;编码在加锁前完成。 ## 使用示例 ```cpp #include <StormByte/logger/log.hxx> #include <StormByte/logger/threaded_log.hxx> using namespace StormByte::Logger; Log log(std::cout, Level::Info, "[%L] %T"); log << Level::Info << "hello" << std::endl; auto tlog = std::make_shared<ThreadedLog>(std::cout, Level::Debug, "[%L] %T"); tlog << Level::Notice << "opened source" << std::endl; ``` ## 安装 需要 C++26 编译器、CMake 3.28+ 和 StormByte-String 1.0.0+(其内置 StormByte Base 2.0.0+)。 ```sh git clone --recursive https://github.com/StormBytePP/StormByte-Logger.git cd StormByte-Logger cmake -S . -B build cmake --build build ``` ## 许可证 LGPL v3 或可向版权持有人获取商业许可证。