c logger de registro simples e eficiente para a linguagem C. Ele permite gravar mensagens de log em um arquivo ou no console, com diferentes níveis de detalhe e controle. Neste artigo, veremos quais recursos o C logger oferece, como instalá-lo e utilizá-lo em seus projetos C.
Recursos do registrador C
c logger é uma biblioteca leve, que contém apenas 500 linhas de código-fonte. É compatível com o padrão C89 e é seguro para threads. Ele oferece dois tipos de registro:
- Log do console, que exibe mensagens de log na saída padrão ou de erro.
- Registro em arquivo, que grava mensagens de log em um arquivo de texto, com rotação automática com base no tamanho do arquivo.
c logger também permite personalizar o log com um arquivo de configuração, no qual você pode definir o formato da mensagem, o nível de detalhe, o nome do arquivo de log, o tamanho máximo do arquivo, etc.
Como instalar o clogger?
Para instalar o c logger, basta baixar o código-fonte do repositório GitHub e compilá-lo com seu compilador C favorito. Por exemplo, com gcc:
$ git clone https://github.com/yksz/c-logger.git $ cd c-logger $ gcc -c -o logger.o logger.c $ ar rcs libclogger.a logger.o
Isso criará um arquivo libclogger.a estático que você pode vincular ao seu programa C. Você também precisará incluir o arquivo de cabeçalho logger.h em seus arquivos de origem.
Como usar o entupimento?
Para utilizar o c logger, você deve primeiro inicializar a biblioteca com a logger_init
, passando a ela o nome do arquivo de configuração ou NULL caso queira utilizar os parâmetros padrão. função logger
para escrever mensagens de log, passando para ela uma tag, um nível e uma mensagem. Por exemplo :
#include "logger.h" int main(void) { /* Inicialize a biblioteca com o arquivo config.ini */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Erro de inicialização de c registrador\n"); retornar 1; } /* Escreve uma mensagem de nível INFO com a tag "main" */ logger("main", LOG_INFO, "Start of program"); /* Escreve uma mensagem de nível ERROR com a tag "main" */ logger("main", LOG_ERROR, "Fatal error"); /* Fim da biblioteca */ logger_end(); retornar 0; }
O formato das mensagens de log depende do arquivo de configuração utilizado. Por padrão, é do formato:
nível de mensagem de tag de data e hora
Por exemplo :
2023-06-13 02:37:16 INFO principal Início do programa 2023-06-13 02:37:16 principal ERRO Erro fatal
O formato pode ser modificado usando as seguintes variáveis no arquivo de configuração:
- %d: a data no formato AAAA-MM-DD
- %t: hora no formato HH:MM:SS
- %c: a tag da mensagem
- %l: nível da mensagem
- %m: a mensagem
- %n: uma quebra de linha
Por exemplo, se quisermos um formato mais curto, podemos usar:
[formatos] simples = "%t %c %l %m%n"
Que níveis de detalhe estão disponíveis?
c logger oferece cinco níveis de detalhes para mensagens de log:
- LOG_DEBUG: para mensagens de depuração, útil para desenvolvedores.
- LOG_INFO: para mensagens informativas, úteis para os usuários.
- LOG_WARN: para mensagens de aviso, útil para reportar situações anormais mas não críticas.
- LOG_ERROR: para mensagens de erro, útil para reportar situações críticas que impedem o bom funcionamento do programa.
- LOG_FATAL: para mensagens fatais, útil para reportar situações irrecuperáveis que exigem a parada do programa.
Você pode controlar o nível de detalhe das mensagens de log usando a log_level
no arquivo de configuração. Por exemplo, se quisermos exibir apenas mensagens de nível ERROR e FATAL, podemos usar:
[geral] log_level = 3
Os níveis são numerados de 0 a 4, do mais detalhado ao menos detalhado. Por padrão, o nível é 0, que exibe todas as mensagens.
Como controlar o tamanho do arquivo de log?
c logger permite limitar o tamanho do arquivo de log usando a max_file_size
no arquivo de configuração. Por exemplo, se quisermos que o arquivo de log não exceda 1 MB, podemos usar:
[geral] max_file_size = 1048576
O tamanho é expresso em bytes. Por padrão, não há limite de tamanho.
Quando o arquivo de log atinge o tamanho máximo, o c logger cria um novo arquivo com um sufixo numérico. Por exemplo, se o nome do arquivo de log for log.txt
, o primeiro arquivo criado será log.txt.1
, depois log.txt.2
, etc. O número máximo de arquivos criados é controlado pela max_file_count
no arquivo de configuração. Por exemplo, se quisermos manter no máximo 10 arquivos de log, podemos usar:
[geral] max_file_count = 10
Por padrão, não há limite para o número de arquivos.
Perguntas frequentes
Qual é a diferença entre c logger e outras bibliotecas de log como log4c ou nglogc?
c logger se destaca pela simplicidade e leveza. Ela não possui tantos recursos quanto outras bibliotecas mais abrangentes, mas cobre as necessidades essenciais de registro. Também é compatível com o padrão C89 e thread-safe.
Como posso exibir mensagens de log em um formato diferente de texto?
c logger suporta apenas formato de texto para mensagens de log. Se quiser usar outro formato, como JSON ou XML, você precisará escrever sua própria função de formatação e chamá-la na logger
.
Como filtrar mensagens de log com base em tag ou nível?
c logger não oferece filtragem avançada de mensagens de log. Você só pode controlar o nível geral da mensagem com a log_level
no arquivo de configuração. Se quiser filtrar mensagens com base em tag ou nível, você precisará escrever sua própria função de filtro e chamá-la na logger
.
Como envio mensagens de log para um destino diferente do console ou do arquivo?
c logger suporta apenas console e arquivo como destinos para mensagens de log. Se quiser enviar as mensagens para outro destino, como um banco de dados ou serviço web, você precisará escrever sua própria função de envio e chamá-la na logger
.
Como depurar o c logger em caso de problema?
c logger fornece uma logger_debug
que exibe informações sobre o estado interno da biblioteca. Você pode ligar a qualquer momento para verificar se o c logger está funcionando corretamente.
Conclusão
c logger é uma biblioteca de log simples e eficiente para a linguagem C. Ela permite gravar mensagens de log em um arquivo ou no console, com diferentes níveis de detalhe e controle. É fácil de instalar e usar e oferece personalização com um arquivo de configuração. c logger é baseado no princípio da programação orientada a objetos , que permite criar objetos logger com propriedades e métodos específicos. c logger é uma solução ideal para desenvolvedores que desejam adicionar funcionalidade de log aos seus projetos C sem complicações.