Co to jest „c logger” i jak go używać?

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

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.

GetPaidStock.com 648cc730e4ed6

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

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?

GetPaidStock.com 648cc7c60325c

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?

GetPaidStock.com 648cc93a4a071

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.

Poprzedni artykuł Czym są okładki na Bereal?
Następny artykuł Błąd Facebook Messengera? Co zrobić, aby rozwiązać problemy z awarią?
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!