Sobre el proyecto
spdlog es una biblioteca de registro de alto rendimiento en C++ diseñada para velocidad, flexibilidad y facilidad de uso. Puede utilizarse como biblioteca de solo cabeceras o compilada para tiempos de compilación más rápidos, requiriendo únicamente un compilador C++11. La biblioteca está construida sobre la biblioteca de formato fmt, proporcionando un formato de salida con muchas funciones, con soporte para argumentos posicionales, relleno, alineación y formateadores de tipos personalizados.
Las características clave incluyen modos de registro síncronos y asíncronos, registradores (loggers) de un solo hilo y de múltiples hilos, y una amplia gama de destinos de registro, como archivos de registro rotativos, archivos de registro diarios, salida de consola con soporte de color, syslog, registro de eventos de Windows, salida del depurador de Windows y widgets de Qt. Se pueden implementar sumideros (sinks) personalizados para extender la biblioteca a destinos adicionales. Los niveles de registro pueden filtrarse en tiempo de ejecución o en tiempo de compilación, y los niveles pueden cargarse desde variables de entorno o argumentos de línea de comandos.
La biblioteca admite funcionalidad de backtrace, donde los mensajes de depuración se almacenan en un búfer circular y pueden volcarse bajo demanda, lo que resulta útil para mostrar la salida de depuración reciente cuando ocurre un error. Utilidades adicionales incluyen el vaciado periódico de registradores registrados, soporte de cronómetro para mediciones de tiempo, registro de datos binarios en formato hexadecimal, contexto de diagnóstico mapeado (MDC) para pares clave-valor locales al hilo, y devoluciones de llamada definidas por el usuario para eventos de registro. Los manejadores de errores personalizados y los manejadores de eventos de apertura/cierre de archivos proporcionan un control adicional sobre el comportamiento del registro.
spdlog es multiplataforma y admite Linux, FreeBSD, OpenBSD, Solaris, AIX, Windows (MSVC 2013+, Cygwin), macOS (Clang 3.5+) y Android. Está disponible a través de numerosos gestores de paquetes, incluyendo apt, Homebrew, MacPorts, FreeBSD pkg, dnf, emerge, pacman, zypper, vcpkg, conan, conda y build2. Los puntos de referencia en Ubuntu de 64 bits con una CPU Intel i7-4770 muestran un rendimiento síncrono de un solo hilo de aproximadamente 5,7 millones de mensajes por segundo para el registro básico, logrando el modo asíncrono hasta 2,6 millones de mensajes por segundo bajo contención de 10 hilos con una política de sobreescritura (overrun). La documentación está disponible en el wiki del proyecto.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.