c logger to prosta i wydajna biblioteka rejestrująca dla języka C. Umożliwia zapisywanie komunikatów dziennika do pliku lub na konsolę, z różnymi poziomami szczegółowości i kontroli. W tym artykule zobaczymy, jakie funkcje oferuje rejestrator C, jak go zainstalować i używać w projektach C.
Funkcje rejestratora C
c logger to lekka biblioteka, która zawiera tylko 500 linii kodu źródłowego. Jest kompatybilny ze standardem C89 i jest bezpieczny dla gwintów. Oferuje dwa rodzaje rejestrowania:
- Rejestrowanie konsoli, które wyświetla komunikaty dziennika w postaci standardowej lub wyjścia błędów.
- Rejestrowanie do pliku, który zapisuje komunikaty dziennika do pliku tekstowego z automatyczną rotacją na podstawie rozmiaru pliku.
c logger umożliwia także dostosowanie rejestrowania za pomocą pliku konfiguracyjnego, w którym można zdefiniować format wiadomości, poziom szczegółowości, nazwę pliku dziennika, maksymalny rozmiar pliku itp.
Jak zainstalować rejestrator C?
Aby zainstalować program logujący C, po prostu pobierz kod źródłowy z repozytorium GitHub i skompiluj go za pomocą ulubionego kompilatora C. Na przykład za pomocą 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
Spowoduje to utworzenie statycznego archiwum libclogger.a, które możesz połączyć z programem w języku C. Będziesz także musiał dołączyć plik nagłówkowy logger.h do plików źródłowych.
Jak używać cloggera?
Aby użyć rejestratora c, musisz najpierw zainicjować bibliotekę funkcją logger_init
, przekazując jej nazwę pliku konfiguracyjnego lub NULL, jeśli chcesz użyć parametrów domyślnych. funkcji rejestratora
do zapisania komunikatów dziennika, przekazując mu znacznik, poziom i komunikat. Na przykład :
#include "logger.h" int main(void) { /* Zainicjuj bibliotekę plikiem config.ini */ if (logger_init("config.ini") != 0) { fprintf(stderr, "Błąd inicjalizacji c rejestrator\n"); zwróć 1; } /* Napisz wiadomość na poziomie INFO ze znacznikiem "main" */ logger("main", LOG_INFO, "Start programu"); /* Napisz komunikat na poziomie BŁĄD ze znacznikiem „main” */ logger(„main”, LOG_ERROR, „Błąd krytyczny”); /* Zakończenie biblioteki */ logger_end(); zwróć 0; }
Format komunikatów dziennika zależy od użytego pliku konfiguracyjnego. Domyślnie ma on postać:
poziom komunikatu znacznika daty i godziny
Na przykład :
2023-06-13 02:37:16 main INFO Start programu 2023-06-13 02:37:16 main BŁĄD Błąd krytyczny
Format można modyfikować za pomocą następujących zmiennych w pliku konfiguracyjnym:
- %d: data w formacie RRRR-MM-DD
- %t: czas w formacie GG:MM:SS
- %c: znacznik wiadomości
- %l: poziom wiadomości
- %m: wiadomość
- %n: przerwa w wierszu
Na przykład, jeśli chcemy mieć krótszy format, możemy użyć:
[formaty] proste = "%t %c %l %m%n"
Jakie poziomy szczegółowości są dostępne?
c logger oferuje pięć poziomów szczegółowości komunikatów dziennika:
- LOG_DEBUG: dla komunikatów debugowania, przydatne dla programistów.
- LOG_INFO: dla wiadomości informacyjnych, przydatnych dla użytkowników.
- LOG_WARN: dla komunikatów ostrzegawczych, przydatny do zgłaszania nietypowych, ale niekrytycznych sytuacji.
- LOG_ERROR: dla komunikatów o błędach, przydatny do raportowania sytuacji krytycznych, które uniemożliwiają prawidłowe działanie programu.
- LOG_FATAL: w przypadku komunikatów krytycznych, przydatny do zgłaszania nieodwracalnych sytuacji, które wymagają zatrzymania programu.
Poziom szczegółowości komunikatów dziennika można kontrolować za pomocą log_level
w pliku konfiguracyjnym. Przykładowo, jeśli chcemy wyświetlić tylko komunikaty na poziomie ERROR i FATAL, możemy zastosować:
[ogólne] poziom_loga = 3
Poziomy są ponumerowane od 0 do 4, od najbardziej szczegółowego do najmniej szczegółowego. Domyślnie poziom wynosi 0, co oznacza wyświetlanie wszystkich komunikatów.
Jak kontrolować rozmiar pliku dziennika?
c logger pozwala ograniczyć rozmiar pliku dziennika za pomocą max_file_size
w pliku konfiguracyjnym. Przykładowo, jeśli chcemy, aby plik logu nie przekraczał 1 MB, możemy zastosować:
[ogólne] max_file_size = 1048576
Rozmiar wyrażany jest w bajtach. Domyślnie nie ma limitu rozmiaru.
Kiedy plik dziennika osiągnie maksymalny rozmiar, program c logger tworzy nowy plik z przyrostkiem numerycznym. Na przykład, jeśli nazwa pliku dziennika to log.txt
, pierwszym utworzonym plikiem będzie log.txt.1
, następnie log.txt.2
itd. Maksymalna liczba utworzonych plików jest kontrolowana przez max_file_count
w pliku konfiguracyjnym. Na przykład, jeśli chcemy zachować maksymalnie 10 plików dziennika, możemy użyć:
[ogólne] max_file_count = 10
Domyślnie nie ma ograniczeń co do liczby plików.
Często zadawane pytania
Jaka jest różnica między rejestratorem c a innymi bibliotekami rejestrowania, takimi jak log4c lub nglogc?
c logger wyróżnia się prostotą i lekkością. Nie ma tak wielu funkcji jak inne, bardziej wszechstronne biblioteki, ale zaspokaja podstawowe potrzeby związane z logowaniem. Jest również kompatybilny ze standardem C89 i bezpiecznym dla gwintów.
Jak wyświetlić komunikaty dziennika w formacie innym niż tekst?
c logger obsługuje tylko format tekstowy komunikatów dziennika. Jeśli chcesz użyć innego formatu, takiego jak JSON lub XML, będziesz musiał napisać własną funkcję formatującą i wywołać ją w rejestratora
.
Jak filtrować komunikaty dziennika na podstawie tagu lub poziomu?
c logger nie oferuje zaawansowanego filtrowania komunikatów dziennika. Ogólny poziom komunikatów można kontrolować jedynie za pomocą log_level
w pliku konfiguracyjnym. Jeśli chcesz filtrować wiadomości na podstawie tagu lub poziomu, będziesz musiał napisać własną funkcję filtrującą i wywołać ją w funkcji rejestratora
.
Jak wysłać komunikaty dziennika do miejsca docelowego innego niż konsola lub plik?
c logger obsługuje tylko konsolę i plik jako miejsca docelowe komunikatów dziennika. Jeśli chcesz wysłać wiadomości do innego miejsca docelowego, takiego jak baza danych lub serwis internetowy, musisz napisać własną funkcję wysyłania i wywołać ją w funkcji rejestratora
.
Jak debugować rejestrator C w przypadku problemów?
c logger udostępnia logger_debug
, która wyświetla informacje o wewnętrznym stanie biblioteki. Możesz do niego zadzwonić w każdej chwili i sprawdzić, czy c logger działa prawidłowo.
Wniosek
c logger to prosta i wydajna biblioteka rejestrowania dla języka C. Umożliwia zapisywanie komunikatów dziennika do pliku lub na konsolę, z różnymi poziomami szczegółowości i kontroli. Jest łatwy w instalacji i obsłudze oraz oferuje możliwość dostosowania za pomocą pliku konfiguracyjnego. c logger opiera się na zasadzie programowania obiektowego , co pozwala na tworzenie obiektów rejestratora o określonych właściwościach i metodach. c logger to idealne rozwiązanie dla programistów, którzy chcą bezproblemowo dodać funkcję rejestrowania do swoich projektów w języku C.