Czym jest „clogger” i jak go używać?

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.
GetPaidStock.com 648cc5e1c018c

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.

GetPaidStock.com 648cc730e4ed6

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; }
GetPaidStock.com 648cc8415ebd3

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?

GetPaidStock.com 648cc7c60325c

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?

GetPaidStock.com 648cc93a4a071

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.

Poprzedni artykuł : Czym są powtórki w bereal?
Następny artykuł: Błąd w Facebook Messengerze? Co zrobić, aby rozwiązać problem awarii?
Witam mnie, tu François :) W wolnym czasie redaktor, który uwielbia dzielić się swoją pasją: TT High tech! 😍 Niezależnie od tego, czy chodzi o sprzęt, oprogramowanie, gry wideo, media społecznościowe i wiele innych obszarów witryny. Dzielę się z Wami moimi analizami, testami, tutorialami i ulubionymi w różnych mediach. Jestem wykształconym i wymagającym technofilem, który nie tylko podąża za modą, ale stara się poprowadzić Cię w kierunku najlepszych rozwiązań. Bądźcie na bieżąco!