c logger logging semplice ed efficiente per il linguaggio C. Ti consente di scrivere messaggi di registro su un file o sulla console, con diversi livelli di dettaglio e controllo. In questo articolo vedremo quali funzionalità offre C logger, come installarlo e utilizzarlo nei tuoi progetti C.
Funzionalità del registratore C
c logger è una libreria leggera, composta da sole 500 righe di codice sorgente. È compatibile con lo standard C89 ed è thread-safe. Offre due tipi di registrazione:
- Registrazione della console, che visualizza i messaggi di registro nell'output standard o di errore.
- Logging to file, che scrive i messaggi di registro in un file di testo, con rotazione automatica in base alla dimensione del file.
c logger consente inoltre di personalizzare la registrazione con un file di configurazione, in cui è possibile definire il formato del messaggio, il livello di dettaglio, il nome del file di registro, la dimensione massima del file, ecc.
Come installare clogger?
Per installare c logger, scarica semplicemente il codice sorgente dal repository GitHub e compilalo con il tuo compilatore C preferito. Ad esempio, con 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
Questo creerà un archivio statico libclogger.a che puoi collegare al tuo programma C. Dovrai anche includere il file di intestazione logger.h nei tuoi file sorgente.
Come usare il clogger?
Per utilizzare c logger è necessario innanzitutto inizializzare la libreria con la logger_init
, passandole il nome del file di configurazione oppure NULL se si vogliono utilizzare i parametri di default. funzione logger
per scrivere messaggi di log, passandogli un tag, un livello e un messaggio. Per esempio :
#include "logger.h" int main(void) { /* Inizializza la libreria con il file config.ini */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Errore di inizializzazione di c registratore\n"); ritorno 1; } /* Scrive un messaggio di livello INFO con il tag "main" */ logger("main", LOG_INFO, "Start of program"); /* Scrive un messaggio di livello ERRORE con il tag "main" */ logger("main", LOG_ERROR, "Fatal error"); /* Fine libreria */ logger_end(); restituire 0; }
Il formato dei messaggi di registro dipende dal file di configurazione utilizzato. Per impostazione predefinita, è nel formato:
livello di messaggio tag data-ora
Per esempio :
2023-06-13 02:37:16 main INFO Inizio del programma 2023-06-13 02:37:16 main ERROR Errore fatale
Il formato può essere modificato utilizzando le seguenti variabili nel file di configurazione:
- %d: la data nel formato AAAA-MM-GG
- %t: ora nel formato HH:MM:SS
- %c: il tag del messaggio
- %l: livello del messaggio
- %m: il messaggio
- %n: un'interruzione di riga
Ad esempio, se vogliamo avere un formato più breve, possiamo utilizzare:
[formati] semplice = "%t %c %l %m%n"
Quali livelli di dettaglio sono disponibili?
c logger offre cinque livelli di dettaglio per i messaggi di registro:
- LOG_DEBUG: per messaggi di debug, utile per gli sviluppatori.
- LOG_INFO: per messaggi informativi, utili agli utenti.
- LOG_WARN: per messaggi di avviso, utile per segnalare situazioni anomale ma non critiche.
- LOG_ERROR: per messaggi di errore, utile per segnalare situazioni critiche che impediscono il corretto funzionamento del programma.
- LOG_FATAL: per messaggi fatali, utile per segnalare situazioni irrecuperabili che richiedono l'arresto del programma.
È possibile controllare il livello di dettaglio dei messaggi di registro utilizzando la log_level
nel file di configurazione. Se ad esempio vogliamo visualizzare solo i messaggi di livello ERROR e FATAL possiamo utilizzare:
[generale] livello_log = 3
I livelli sono numerati da 0 a 4, dal più dettagliato al meno dettagliato. Per impostazione predefinita, il livello è 0, che visualizza tutti i messaggi.
Come controllare la dimensione del file di registro?
c logger consente di limitare la dimensione del file di registro utilizzando la max_file_size
nel file di configurazione. Se ad esempio vogliamo che il file di log non superi 1 MB possiamo usare:
[generale] dimensione_max_file = 1048576
La dimensione è espressa in byte. Per impostazione predefinita, non esiste alcun limite di dimensione.
Quando il file di registro raggiunge la dimensione massima, c logger crea un nuovo file con un suffisso numerico. Ad esempio, se il nome del file di registro è log.txt
, il primo file creato sarà log.txt.1
, quindi log.txt.2
e così via. Il numero massimo di file creati è controllato dalla max_file_count
nel file di configurazione. Ad esempio, se vogliamo conservare un massimo di 10 file di registro, possiamo utilizzare:
[generale] max_file_count = 10
Per impostazione predefinita, non esiste alcun limite al numero di file.
Domande frequenti
Qual è la differenza tra c logger e altre librerie di registrazione come log4c o nglogc?
c logger si distingue per la sua semplicità e leggerezza. Non ha tante funzionalità quanto altre librerie più complete, ma copre le esigenze di registrazione essenziali. È inoltre compatibile con lo standard C89 e thread-safe.
Come posso visualizzare i messaggi di registro in un formato diverso dal testo?
c logger supporta solo il formato testo per i messaggi di registro. Se desideri utilizzare un altro formato, come JSON o XML, dovrai scrivere la tua funzione di formattazione e chiamarla nella logger
.
Come filtrare i messaggi di registro in base al tag o al livello?
c logger non offre il filtraggio avanzato dei messaggi di registro. Puoi controllare il livello generale del messaggio solo con la log_level
nel file di configurazione. Se desideri filtrare i messaggi in base al tag o al livello, dovrai scrivere la tua funzione di filtro e chiamarla nella logger
.
Come posso inviare messaggi di registro a una destinazione diversa dalla console o dal file?
c logger supporta solo console e file come destinazioni per i messaggi di registro. Se desideri inviare i messaggi a un'altra destinazione, come un database o un servizio web, dovrai scrivere la tua funzione di invio e chiamarla nella logger
.
Come eseguire il debug di c logger in caso di problemi?
c logger fornisce una logger_debug
che visualizza informazioni sullo stato interno della libreria. Puoi chiamarlo in qualsiasi momento per verificare se c logger funziona correttamente.
Conclusione
c logger è una libreria di logging semplice ed efficiente per il linguaggio C. Ti consente di scrivere messaggi di log su un file o sulla console, con diversi livelli di dettaglio e controllo. È facile da installare e utilizzare e offre personalizzazione con un file di configurazione. c logger si basa sul principio della programmazione orientata agli oggetti , che consente di creare oggetti logger con proprietà e metodi specifici. c logger è una soluzione ideale per gli sviluppatori che desiderano aggiungere funzionalità di registrazione ai propri progetti C senza problemi.