A Biblioteca de registro CA construiu para alto desempenho e um rico conjunto de recursos.
한국어 | 简体中文
Principais recursos | Construa e instale | Uso básico | Contribuindo
O stumpless possui muitos recursos que tornam o log em C rápido e fácil:
Um objetivo principal desta biblioteca é fornecer uma interface de log consistente a uma ampla variedade de alvos de log. Isso significa que você pode se concentrar na definição de eventos e para onde deseja que eles vão, sem encontrar outros SDKs ou adicionar daemons e plugins para obtê -los onde deseja. O stumpless pode escrever logs para:
Não vê o que você precisa? Crie um problema com sua solicitação e trabalharemos em nosso roteiro!
A falta de falta requer apenas cmake e uma cadeia de ferramentas de construção suportada por cmake (como GCC ou 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 .Confira as instruções de instalação para obter mais detalhes sobre a construção e a instalação de falta em diferentes ambientes e/ou com outras cadeias de ferramentas.
A maneira mais simples de começar é usar a função stumplog como um substituto direto para a função syslog da biblioteca padrão:
// 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 ); Se você não abriu um destino, isso registrará mensagens no destino padrão da plataforma: no Linux, este é /dev/log , em um sistema MAC Este será /var/run/syslog e, em uma máquina Windows, é o log de eventos do Windows. Se você abrir um alvo ou até alguns antes de ligar para stumplog , os logs serão enviados para o destino aberto mais recentemente.
Se você deseja uma chamada de função ainda mais curta, pode usar a função stump para enviar uma mensagem para o destino atual. Você também pode usar especificadores de formato, assim como faria com printf :
stump ( "Login attempt failure #%d for user %s" , count , username ); Se você não precisar de especificadores de formato, use uma das variantes _str : é mais rápido e mais seguro!
stump_str ( "Login failure! See structured data for info." ); Se você deseja abrir um alvo específico em vez de usar o padrão, basta abrir o que você precisa e comece a enviar mensagens. Por exemplo, para fazer login em um arquivo chamado 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 mensagens pela rede para algo como Splunk ou RsysLog é igualmente 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 );Se você tiver vários alvos, pode enviar mensagens para um alvo escolhido como este:
stumpless_add_message ( target ,
"Login attempt failure #%d for user %s" ,
count ,
username );É comum especificar níveis de gravidade diretamente nas chamadas de registro, portanto, o stumpless fornece algumas funções macro para tornar isso menos detalhado e mais eficiente. Por exemplo, para registrar mensagens com uma gravidade de informações, você pode fazer isso:
stump_i ( "this gets logged as an info message" ); E se você deseja ver também o arquivo de origem, o número da linha e as informações do nome da função em cada mensagem que você pode usar _t (o 't' é para rastreamento):
stump_t ( "this includes source info" ); O uso dessas funções tem o benefício adicional de que eles podem ser removidos no momento da compilação, simplesmente definindo os símbolos STUMPLESS_ENABLE_UPTO ou STUMPLESS_DISABLE_DOWNTO . Isso facilita a alteração dos níveis de registro entre as compilações, por exemplo, para ter versões CROD e Debug sem diferenças em seu código -fonte.
// 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 );Confira os cabeçalhos em falta/nível para ver a lista completa de funções abreviadas de gravidade, ou o exemplo do nível de gravidade para ver um programa completo em ação.
Para exemplos mais detalhados dos cenários acima, o uso de tipos de destino específicos, como lidar com estruturas de mensagens mais complicadas e mais conferir os exemplos. Isso inclui arquivos de código de exemplo anotados para compilar, executar e modificar para iniciar.
Observe um problema ou tem uma solicitação de recurso? Basta criar um problema usando um dos modelos e responderemos o mais rápido possível. Você também pode observar as diretrizes de contribuição do projeto para obter mais detalhes sobre as diferentes maneiras pelas quais você pode retribuir à comunidade de código aberto!
Se você deseja escrever algum código ou fazer uma atualização, dê uma olhada no Guia de Desenvolvimento para obter uma orientação detalhada. Existem algumas opções com base no seu nível de experiência e familiaridade em fazer contribuições.
A primeira opção é procurar a lista de questões marcadas com o rótulo Good Primeira edição. Esses problemas são selecionados para ser uma quantidade pequena, mas significativa, e incluem detalhes sobre a abordagem geral que você pode adotar para concluí -los. Eles são um ótimo lugar para começar se você está apenas procurando testar as águas deste projeto ou contribuição de código aberto em geral.
Desenvolvedores mais experientes podem preferir examinar a lista completa de questões no projeto, bem como no roteiro. Se um item pegar seu interesse, deixe um comentário no problema existente ou abra um novo se ainda não existir e indique sua intenção de trabalhar nele para que outros tenham uma maneira de saber que ele está em andamento.
Se você está curioso para saber como algo em falta funciona que não é explicado aqui, pode verificar a seção apropriada da documentação, armazenada na pasta Docs. As pastas do repositório contêm seus próprios arquivos de leitura que detalham o que eles contêm e qualquer outra informação relevante. A documentação para cada função também é hospedada no site do projeto, tanto para a biblioteca C quanto para as outras ligações de idiomas, como C ++.
O stumpless também inclui documentação em instalações locais na forma de páginas man . Depois de instalar a biblioteca, você pode verificar a documentação para qualquer arquivo de cabeçalho (e as funções que ele contém) executando o homem com o nome do cabeçalho com diretórios substituídos por sublinhados, por exemplo, man stumpless_log.h para ver a documentação para funções que registram mensagens simples de string.
Também existem várias maneiras de entrar em contato com a equipe do projeto e a comunidade mais ampla para obter apoio.