C Logger to prosta i wydajna biblioteka do logowania w języku C. Umożliwia ona zapisywanie komunikatów logu do pliku lub na konsoli, z różnymi poziomami szczegółowości i kontroli. W tym artykule zobaczymy, jakie funkcje oferuje C Logger, jak go zainstalować i jak używać w projektach C.
Cechy zatykacza
C logger to lekka biblioteka, składająca się z zaledwie 500 linii kodu źródłowego. Jest zgodna ze standardem C89 i bezpieczna wątkowo. Oferuje dwa rodzaje logowania:
- Rejestrowanie konsoli, które wyświetla komunikaty dziennika na standardowym wyjściu lub wyjściu błędów.
- Rejestrowanie do pliku, które zapisuje komunikaty dziennika do pliku tekstowego, z automatyczną rotacją na podstawie rozmiaru pliku.

c logger pozwala także na dostosowanie rejestrowania za pomocą pliku konfiguracyjnego, w którym można zdefiniować format wiadomości, poziom szczegółowości, nazwę pliku rejestrowania, maksymalny rozmiar pliku itp.
Jak zainstalować Cloggera?
Aby zainstalować C Logger, wystarczy pobrać kod źródłowy z repozytorium GitHub i skompilować go za pomocą preferowanego 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żna połączyć z programem w języku C. Konieczne będzie również dołączenie pliku nagłówkowego logger.h do plików źródłowych.

Jak używać zatykacza?
Aby użyć C Logger, należy najpierw zainicjować bibliotekę funkcją `logger_init` , przekazując jej nazwę pliku konfiguracyjnego lub `NULL`, jeśli chcesz użyć ustawień domyślnych. Następnie można użyć `logger` do zapisywania komunikatów logu, przekazując jej tag, 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 logger\n"); return 1; } /* Zapisz komunikat na poziomie INFO z tagiem "main" */ logger("main", LOG_INFO, "Program uruchomiony"); /* Zapisz komunikat na poziomie ERROR z tagiem "main" */ logger("main", LOG_ERROR, "Błąd krytyczny"); /* Zakończ działanie biblioteki */ logger_end(); return 0; }

Format komunikatów dziennika zależy od użytego pliku konfiguracyjnego. Domyślnie ma on następującą postać:
komunikat na poziomie znacznika daty i godziny
Na przykład :
2023-06-13 02:37:16 main INFO Uruchomienie 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: podział wiersza
Na przykład, jeśli chcemy uzyskać 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: do debugowania komunikatów, przydatne dla programistów.
- LOG_INFO: do komunikatów informacyjnych, przydatnych dla użytkowników.
- LOG_WARN: dla komunikatów ostrzegawczych, przydatny do zgłaszania sytuacji nietypowych, ale nie krytycznych.
- LOG_ERROR: dla komunikatów o błędach, przydatny do sygnalizowania sytuacji krytycznych, które uniemożliwiają prawidłowe funkcjonowanie programu.
- LOG_FATAL: dla komunikatów krytycznych, przydatne do sygnalizowania sytuacji nieodwracalnych, które wymagają zatrzymania programu.
Poziom szczegółowości komunikatów dziennika można kontrolować za pomocą `log_level` w pliku konfiguracyjnym. Na przykład, jeśli chcesz wyświetlać tylko komunikaty ERROR i FATAL, możesz użyć:
[ogólne] log_level = 3
Poziomy są ponumerowane od 0 do 4, od najbardziej do najmniej szczegółowych. Domyślnie poziom to 0, co oznacza wyświetlanie wszystkich komunikatów.
Jak kontrolować rozmiar pliku dziennika?

Logger c pozwala ograniczyć rozmiar pliku dziennika za pomocą `max_file_size` w pliku konfiguracyjnym. Na przykład, jeśli chcesz, aby plik dziennika nie był większy niż 1 MB, możesz użyć:
[ogólne] max_file_size = 1048576
Rozmiar wyrażony jest w bajtach. Domyślnie nie ma limitu rozmiaru.
Gdy plik dziennika osiągnie maksymalny rozmiar, c logger tworzy nowy plik z sufiksem 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 tworzonych plików jest kontrolowana przez max_file_count w pliku konfiguracyjnym. Na przykład, aby zachować maksymalnie 10 plików dziennika, możesz 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 c loggerem a innymi bibliotekami rejestrującymi dane, takimi jak log4c lub nglogc?
C logger wyróżnia się prostotą i lekką konstrukcją. Chociaż nie oferuje tak wielu funkcji, jak niektóre bardziej rozbudowane biblioteki, zaspokaja podstawowe potrzeby związane z logowaniem. Jest również zgodny ze standardem C89 i bezpieczny dla wątków.
Jak mogę wyświetlać komunikaty dziennika w formacie innym niż tekst?
Logger w C obsługuje tylko format tekstowy komunikatów dziennika. Jeśli chcesz użyć innego formatu, takiego jak JSON lub XML, musisz napisać własną funkcję formatującą i wywołać ją w logger .
Jak mogę filtrować komunikaty dziennika na podstawie tagu lub poziomu?
Logger c nie oferuje zaawansowanego filtrowania komunikatów logu. Można kontrolować jedynie ogólny poziom komunikatu za pomocą `log_level` w pliku konfiguracyjnym. Aby filtrować komunikaty na podstawie tagu lub poziomu, należy napisać własną funkcję filtrującą i wywołać ją w `logger` .
Jak mogę wysyłać komunikaty dziennika do innego miejsca niż konsola lub plik?
Logger w języku C obsługuje wyłącznie konsolę i pliki jako miejsca docelowe dla komunikatów logu. Aby wysłać komunikaty do innego miejsca docelowego, takiego jak baza danych lub usługa sieciowa, należy napisać własną funkcję wysyłającą i wywołać ją w loggera .
Jak debugować C-loggera w przypadku wystąpienia problemu?
funkcję `logger_debug` , która wyświetla informacje o stanie wewnętrznym biblioteki. Można ją wywołać w dowolnym momencie, aby sprawdzić, czy logger języka C działa poprawnie.
Wniosek
Clogger to prosta i wydajna biblioteka do rejestrowania zdarzeń w języku C. Umożliwia ona zapisywanie komunikatów do pliku lub konsoli, z różnymi poziomami szczegółowości i kontroli. Jest łatwa w instalacji i obsłudze oraz oferuje możliwość personalizacji za pomocą pliku konfiguracyjnego. Clogger opiera się na zasadach programowania obiektowego , co pozwala na tworzenie obiektów rejestrujących zdarzenia o określonych właściwościach i metodach. Clogger to idealne rozwiązanie dla programistów, którzy chcą bezproblemowo dodać funkcjonalność rejestrowania zdarzeń do swoich projektów w C.
![[GetPaidStock.com]-648cc8b4ec663](https://tt-hardware.com/wp-content/uploads/2023/06/GetPaidStock.com-648cc8b4ec663-696x464.jpg)


