Sobre el proyecto

# StormByte Logger StormByte Logger es un logger de streaming para la suite C++ StormByte, diseñado para C++26 y CMake 3.28+. Proporciona una fachada `Log` con streaming mediante `operator<<`, niveles de severidad, encabezados personalizables, componentes thread-local, grupos, colores ANSI, redacción, volcados hexadecimales, números legibles por humanos y una variante `ThreadedLog` segura para hilos. ## Características clave - **Niveles**: Ordenados desde `LowLevel` hasta `Fatal`; `Warning`, `Error` y `Fatal` siempre se emiten. - **Encabezados**: Tokens de formato como `%L` (nivel), `%T` (marca de tiempo), `%i` (id de hilo), `%c` (ruta de componente), `%g` (grupo). - **Componentes**: Pila thread-local para rutas jerárquicas (por ejemplo, `Multimedia/Decoder`). - **Scope**: Fachadas de ruta fija para bibliotecas que evitan la manipulación de la pila TLS. - **Grupos**: Etiquetas con alcance de línea que se borran con el salto de línea. - **Colores**: Colores ANSI por nivel o ruta de componente, desactivados por defecto. - **Formatos**: Formatos persistentes generales/por componente más formatos temporales anidados. - **Redacción**: Conservar los primeros/últimos N caracteres o enmascarar por completo. - **Hex/Binario**: Volcados hexadecimales de texto y Base64/HexDump para cargas binarias. - **ThreadedLog**: Un bloqueo por línea lógica; la codificación ocurre antes del bloqueo. ## Ejemplo de uso ```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; ``` ## Instalación Requiere un compilador C++26, CMake 3.28+ y StormByte-String 1.0.0+ (que incluye 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 ``` ## Licencia LGPL v3 o licencia comercial disponible a través del titular de los derechos de autor.