Biblioteca de registro de CA creada para un alto rendimiento y un conjunto de características ricas.
한국어 | 简体中文
Características clave | Construir e instalar | Uso básico | Que contribuye
Stumpless tiene muchas características que hacen que el registro en C sea rápido y fácil:
Un objetivo principal de esta biblioteca es proporcionar una interfaz de registro consistente a una amplia variedad de objetivos de registro. Esto significa que puede concentrarse en definir eventos y hacia dónde quiere que se vayan, sin encontrar otros SDK o agregar demonios y complementos para llevarlos a donde desee. Stumpless puede escribir registros para:
¿No ves lo que necesitas? ¡Cree un problema con su solicitud y lo trabajaremos en nuestra hoja de ruta!
Stumpless solo requiere CMake y una cadena de herramientas de construcción de compilación de CMake (como GCC o Visual Studio) para construir.
# cloning the latest version of the source tree
git clone [email protected]:goatshriek/stumpless.git
# creating a new build directory
mkdir build
cd build
# configuring the new build
cmake ../stumpless
# building stumpless (with 4 threads - adjust as desired)
cmake --build . --parallel 4
# install the library (you probably need sudo to do this)
sudo cmake --install .Consulte las instrucciones de instalación para obtener más detalles sobre la construcción e instalación de Stumpless en diferentes entornos y/o con otras cadenas de herramientas.
La forma más simple de comenzar es usar la función stumplog como un reemplazo directo para la función syslog de la biblioteca estándar:
// if you're used to doing this:
syslog ( LOG_INFO | LOG_USER , "My message #%d" , count );
// then you can start by changing to this:
stumplog ( LOG_INFO | LOG_USER , "My message #%d" , count ); Si no ha abierto un objetivo, esto registrará mensajes al objetivo predeterminado para la plataforma: en Linux esto es /dev/log , en un sistema Mac será /var/run/syslog , y en una máquina de Windows es el registro de eventos de Windows. Si abre un objetivo o incluso algunos antes de llamar stumplog , los registros se enviarán al objetivo abierto más recientemente.
Si desea una llamada de función aún más corta, puede usar la función stump para enviar un mensaje al objetivo actual. También puede usar especificadores de formato tal como lo haría con printf :
stump ( "Login attempt failure #%d for user %s" , count , username ); Si no necesita especificadores de formato, use una de las variantes _str : ¡es más rápido y más seguro!
stump_str ( "Login failure! See structured data for info." ); Si desea abrir un objetivo específico en lugar de usar el valor predeterminado, simplemente abra el que necesita y comience a enviar mensajes. Por ejemplo, para iniciar sesión en un archivo llamado example.log :
target = stumpless_open_file_target ( "example.log" );
// uses the last opened target by default
stump ( "Login attempt failure #%d for user %s" , count , username );Enviar mensajes a través de la red a algo como Splunk o Rsyslog es igual de fácil:
target = stumpless_open_udp4_target ( "send-to-splunk-example" ,
"mylogserver.com" ); // or use an IP
stump ( "Login attempt failure #%d for user %s" , count , username );Si tiene múltiples objetivos, puede enviar mensajes a un objetivo elegido como este:
stumpless_add_message ( target ,
"Login attempt failure #%d for user %s" ,
count ,
username );Es común especificar los niveles de gravedad directamente en las llamadas de registro, por lo que Stumpless proporciona algunas funciones macro para hacer que esto sea menos detallado y más eficiente. Por ejemplo, para registrar mensajes con una gravedad de información, puede hacer esto:
stump_i ( "this gets logged as an info message" ); Y si también desea ver el archivo de origen, el número de línea y la información del nombre de la función en cada mensaje que puede usar _t (la 't' es para traza):
stump_t ( "this includes source info" ); El uso de estas funciones tiene el beneficio adicional de que se pueden eliminar en el momento de la compilación simplemente definiendo los símbolos STUMPLESS_ENABLE_UPTO o STUMPLESS_DISABLE_DOWNTO . Esto hace que sea fácil cambiar los niveles de registro entre compilaciones, por ejemplo, tener versiones de prod y depuración sin diferencias en su código fuente.
// be sure to define this before stumpless.h gets included
#define STUMPLESS_ENABLE_UPTO_INFO
// ...
// this log will go through just fine
stump_i ( "I'm doing that thing you asked" );
// this debugging message is completely removed: no runtime impact whatsoever
stump_d ( "DEBUG info: %d, %d, %s" , thing_1 , thing_2 , stringy_thingy );Consulte los encabezados en Stumpless/Nivel para ver la lista completa de funciones de mierda severidad, o el ejemplo de nivel de gravedad para ver un programa completo en acción.
Para ejemplos más detallados de los escenarios anteriores, el uso de tipos de objetivos específicos, cómo manejar estructuras de mensajes más complicadas y más consulte los ejemplos. Estos incluyen archivos de código de ejemplo anotados para compilar, ejecutar y modificar para comenzar.
¿Observe un problema o tiene una solicitud de función? Simplemente cree un problema usando una de las plantillas, y responderemos lo más rápido posible. ¡También puede observar las pautas de contribución del proyecto para obtener más detalles sobre las diferentes formas en que puede devolver a la comunidad de código abierto!
Si realmente desea escribir algún código o realizar una actualización usted mismo, eche un vistazo a la guía de desarrollo para obtener una orientación detallada. Hay algunas opciones basadas en su nivel de experiencia y familiaridad para hacer contribuciones.
La primera opción es navegar por la lista de problemas que están marcados con la etiqueta Good First Problem. Estos problemas se seleccionan para ser una cantidad pequeña pero significativa de trabajo, e incluyen detalles sobre el enfoque general que puede adoptar para completarlos. Son un gran lugar para comenzar si solo está buscando probar las aguas de este proyecto o la contribución de código abierto en general.
Los desarrolladores más experimentados pueden preferir ver la lista completa de problemas en el proyecto, así como la hoja de ruta. Si un elemento capta su interés, deje un comentario en el tema existente o abra uno nuevo si aún no existe y indique su intención de trabajar en él para que otros tengan una forma de saber que está en marcha.
Si tiene curiosidad acerca de cómo funciona algo en Stumpless que no se explica aquí, puede verificar la sección apropiada de la documentación, almacenada en la carpeta Docs. Las carpetas en el repositorio contienen sus propios archivos ReadMe que detallan lo que contienen y cualquier otra información relevante. La documentación para cada función también está alojada en el sitio web del proyecto, tanto para la biblioteca C como para las otras vinculaciones de lenguaje como C ++.
Stumpless también incluye documentación en instalaciones locales en forma de páginas man . Una vez que haya instalado la biblioteca, puede verificar la documentación de cualquier archivo de encabezado (y las funciones que contiene) ejecutando al hombre con el nombre del encabezado con directorios reemplazados con guiones bajos, por ejemplo, man stumpless_log.h para ver la documentación de funciones que registran mensajes simples de cadena.
También hay muchas maneras en que puede comunicarse con el equipo del proyecto y la comunidad más amplia para su apoyo.