“C logger” nedir ve nasıl kullanılır?

c logger, C dili için basit ve etkili bir günlük kaydı kütüphanesidir . Farklı ayrıntı ve kontrol düzeyleriyle günlük mesajlarını bir dosyaya veya konsola yazmanıza olanak tanır. Bu yazımızda C logger’ın hangi özellikleri sunduğunu, nasıl kurulacağını ve C projelerinizde nasıl kullanılacağını göreceğiz.

C logger özellikleri

c logger, yalnızca 500 satırlık kaynak kodundan oluşan hafif bir kitaplıktır. C89 standardıyla uyumludur ve iş parçacığı açısından güvenlidir. İki tür günlük kaydı sunar:

  • Günlük mesajlarını standart veya hata çıktısında görüntüleyen konsol günlüğü.
  • Dosya boyutuna göre otomatik döndürmeyle günlük mesajlarını bir metin dosyasına yazan dosyaya kaydetme.
GetPaidStock.com 648cc5e1c018c

c logger ayrıca mesaj formatını, ayrıntı düzeyini, günlük dosyasının adını, maksimum dosya boyutunu vb. tanımlayabileceğiniz bir yapılandırma dosyasıyla günlüğe kaydetmeyi özelleştirmenize de olanak tanır.

C logger nasıl kurulur?

C logger'ı kurmak için GitHub deposundan kaynak kodunu indirmeniz ve favori C derleyicinizle derlemeniz yeterlidir. Örneğin, gcc ile:

$ 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

Bu, C programınıza bağlayabileceğiniz statik bir libclogger.a arşivi oluşturacaktır. Ayrıca logger.h başlık dosyasını kaynak dosyalarınıza eklemeniz gerekecektir.

GetPaidStock.com 648cc730e4ed6

Clogger nasıl kullanılır?

C logger'ı kullanmak için, önce kütüphaneyi logger_init , buna yapılandırma dosyasının adını veya varsayılan parametreleri kullanmak istiyorsanız NULL'u iletmeniz gerekir. günlük mesajları yazmak, ona bir etiket, bir seviye ve bir mesaj iletmek için logger kullanabiliriz Örneğin :

#include "logger.h" int main(void) { /* Kütüphaneyi config.ini dosyasıyla başlatın */ if (logger_init("config.ini") != 0) { fprintf(stderr, "C'nin başlatma hatası günlükçü\n"); 1'i döndür; } /* "main" etiketiyle INFO düzeyinde bir mesaj yazın */ logger("main", LOG_INFO, "Programın başlangıcı"); /* "main" etiketiyle HATA düzeyinde bir mesaj yazın */ logger("main", LOG_ERROR, "Ölümcül hata"); /* Kitaplığı sonlandır */ logger_end(); 0 değerini döndür; } 
GetPaidStock.com 648cc8415ebd3

Günlük mesajlarının biçimi, kullanılan yapılandırma dosyasına bağlıdır. Varsayılan olarak şu biçimdedir:

tarih-saat etiketi mesaj düzeyi

Örneğin :

2023-06-13 02:37:16 ana BİLGİ Programın başlangıcı 2023-06-13 02:37:16 ana HATA Önemli hata

Biçim, yapılandırma dosyasındaki aşağıdaki değişkenler kullanılarak değiştirilebilir:

  • %d: YYYY-AA-GG biçimindeki tarih
  • %t: SS:DD:SS formatında saat
  • %c: mesaj etiketi
  • %l: mesaj düzeyi
  • %m: mesaj
  • %n: satır sonu

Örneğin, daha kısa bir formata sahip olmak istiyorsak şunu kullanabiliriz:

[formatlar] basit = "%t %c %l %m%n"

Hangi düzeyde ayrıntı mevcut?

GetPaidStock.com 648cc7c60325c

c logger, günlük mesajları için beş düzeyde ayrıntı sunar:

  • LOG_DEBUG: hata ayıklama mesajları için, geliştiriciler için kullanışlıdır.
  • LOG_INFO: bilgilendirici mesajlar için, kullanıcılar için faydalıdır.
  • LOG_WARN: uyarı mesajları için, anormal ancak kritik olmayan durumların raporlanması için kullanışlıdır.
  • LOG_ERROR: hata mesajları için, programın düzgün çalışmasını engelleyen kritik durumları raporlamak için kullanışlıdır.
  • LOG_FATAL: ölümcül mesajlar için, programın durdurulmasını gerektiren kurtarılamaz durumların raporlanması için kullanışlıdır.

Yapılandırma dosyasındaki log_level kullanarak günlük mesajlarının ayrıntı düzeyini kontrol edebilirsiniz Örneğin, yalnızca HATA ve FATAL düzeyindeki mesajları görüntülemek istiyorsak şunu kullanabiliriz:

[genel] log_level = 3

Düzeyler en ayrıntılıdan en az ayrıntılıya doğru 0'dan 4'e kadar numaralandırılır. Varsayılan olarak düzey, tüm mesajları görüntüleyen 0'dır.

Günlük dosyasının boyutu nasıl kontrol edilir?

GetPaidStock.com 648cc93a4a071

yapılandırma dosyasındaki max_file_size kullanarak günlük dosyasının boyutunu sınırlamanıza olanak tanır Örneğin günlük dosyasının 1 MB'ı aşmamasını istiyorsak şunu kullanabiliriz:

[genel] max_file_size = 1048576

Boyut bayt cinsinden ifade edilir. Varsayılan olarak boyut sınırı yoktur.

Günlük dosyası maksimum boyuta ulaştığında c logger sayısal sonek içeren yeni bir dosya oluşturur. Örneğin, günlük dosyasının adı log.txt log.txt.1 , ardından log.txt.2 vb. olacaktır. Oluşturulan maksimum dosya sayısı, yapılandırma dosyasındaki max_file_count Örneğin en fazla 10 günlük dosyası tutmak istiyorsak şunu kullanabiliriz:

[genel] max_file_count = 10

Varsayılan olarak dosya sayısında herhangi bir sınırlama yoktur.

SSS

C logger ile log4c veya nglogc gibi diğer günlük kitaplıkları arasındaki fark nedir?

c logger sadeliği ve hafifliğiyle öne çıkıyor. Diğer, daha kapsamlı kütüphaneler kadar çok özelliğe sahip değildir ancak temel günlük kaydı ihtiyaçlarını karşılar. Ayrıca C89 ve iş parçacığı güvenliği standardı ile de uyumludur.

Günlük mesajlarını metin dışında bir biçimde nasıl görüntülerim?

c logger yalnızca günlük mesajları için metin biçimini destekler. logger fonksiyonunda çağırmanız gerekecektir .

Günlük iletileri etikete veya düzeye göre nasıl filtrelenir?

c logger, günlük mesajlarının gelişmiş filtrelenmesini sunmaz. konfigürasyon dosyasındaki log_level ile kontrol edebilirsiniz Mesajları etikete veya seviyeye göre filtrelemek istiyorsanız, kendi filtre fonksiyonunuzu yazmanız ve bunu logger .

Günlük mesajlarını konsol veya dosya dışındaki bir hedefe nasıl gönderirim?

c logger, günlük mesajları için hedef olarak yalnızca konsolu ve dosyayı destekler. Mesajları veritabanı veya web hizmeti gibi başka bir hedefe göndermek istiyorsanız, kendi gönderme işlevinizi yazmanız ve bunu günlükçü işlevinde çağırmanız gerekecektir .

Sorun durumunda c logger'da hata ayıklama nasıl yapılır?

c logger, kütüphanenin dahili durumu hakkındaki bilgileri görüntüleyen logger_debug C logger'ın düzgün çalışıp çalışmadığını kontrol etmek için istediğiniz zaman arayabilirsiniz.

Çözüm

c logger, C dili için basit ve etkili bir kayıt kütüphanesidir. Günlük mesajlarını farklı ayrıntı ve kontrol seviyeleriyle bir dosyaya veya konsola yazmanıza olanak tanır. Kurulumu ve kullanımı kolaydır ve bir yapılandırma dosyasıyla özelleştirme olanağı sunar. , belirli özelliklere ve yöntemlere sahip logger nesneleri oluşturmanıza olanak tanıyan nesne yönelimli programlama ilkesine dayanmaktadır c logger, C projelerine zorluk yaşamadan günlük kaydı işlevselliği eklemek isteyen geliştiriciler için ideal bir çözümdür.

Önceki makale Bereal'de kapaklar nelerdir?
Sonraki makale Facebook Messenger hatası mı? Arıza sorunlarını çözmek için ne yapmalı?
Merhaba ben François :) Boş zamanlarımda tutkusunu paylaşmayı seven editör: TT High tech! 😍 İster donanım olsun, ister yazılım, video oyunları, sosyal medya ve daha birçok alanda sitede. Analizlerimi, testlerimi, eğitimlerimi ve favorilerimi çeşitli mecralarda sizlerle paylaşıyorum. Sadece modayı takip etmeyen, aynı zamanda sizi en iyi çözümlere yönlendirmeyi amaçlayan, bilgili ve talepkar bir teknoloji tutkunuyum. O halde bizi izlemeye devam edin!