light-weight-logger es una biblioteca de logging para terminal disponible para C++, C# y Java, publicada en GitHub por el usuario PenguineDavid bajo licencia LGPL v2.1. Su propuesta central es abandonar el esquema tradicional de niveles fijos con salida predefinida y sustituirlo por un mini-lenguaje de cadenas de formato: el desarrollador registra niveles con nombre en tiempo de ejecución, asocia a cada uno una cadena de formato y un color ANSI, y emite mensajes invocando log()/Log() con el nombre del nivel y el texto.
El proyecto se distribuye sin dependencias externas en ninguno de los tres lenguajes. La implementación de C++ es un único archivo de cabecera (Logger.hpp) basado en el estándar C++20 e integrable sin sistema de compilación; las versiones de C# (.NET 8+) y Java constan de dos archivos cada una. La salida soporta colores ANSI mediante constantes Colour incluidas en cada puerto.
Entre sus funcionalidades destaca el espaciado dinámico %S, que mantiene alineados los nombres de nivel aunque se añadan nuevos; la captura de ubicación del llamador (%F, %L, %f) en los tres puertos, con la advertencia de que estas opciones recorren la pila y conviene omitirlas en rutas calientes; y un conmutador de formato de fecha entre AU (DD/MM/YYYY) y US (MM/DD/YYYY). La biblioteca ofrece además el identificador de hilo, huso horario, milisegundos y marcas de tiempo con precisión de HH:MM:SS. La documentación incluye varias plantillas listas para copiar, desde una salida compacta con nivel y mensaje hasta un volcado de depuración con archivo, línea y función. La API es mínima: add_format/AddFormat/addFormat para registrar niveles y log/Log para emitir mensajes, con un parámetro por defecto que captura automáticamente el sitio de llamada sin intervención del desarrollador.
