"Tıkayıcı" nedir ve nasıl kullanılır?

C Logger, C dili için basit ve verimli bir günlük kaydı kütüphanesidir . Değişen detay ve kontrol seviyelerinde günlük mesajlarını bir dosyaya veya konsola yazmanıza olanak tanır. Bu makalede, C Logger'ın sunduğu özellikleri, nasıl kurulacağını ve C projelerinizde nasıl kullanılacağını göreceğiz.

Tıkaçın özellikleri

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

  • Konsol günlük kaydı, günlük mesajlarını standart çıktıya veya hata çıktısına görüntüler.
  • Dosyaya kayıt yapma, yani kayıt mesajlarını dosya boyutuna göre otomatik döndürme özelliğiyle bir metin dosyasına yazma.
GetPaidStock.com 648cc5e1c018c

C logger, yapılandırma dosyasıyla günlük kaydının özelleştirilmesine de olanak tanır; bu dosyada mesaj biçimi, ayrıntı düzeyi, günlük dosya adı, maksimum dosya boyutu vb. tanımlayabilirsiniz.

Clogger'ı nasıl kurarım?

C Logger'ı kurmak için, GitHub deposundan kaynak kodunu indirip tercih ettiğiniz C derleyicisiyle 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 işlem, C programınıza bağlayabileceğiniz statik bir arşiv olan libclogger.a dosyasını oluşturacaktır. Ayrıca, kaynak dosyalarınıza logger.h başlık dosyasını da eklemeniz gerekecektir.

GetPaidStock.com 648cc730e4ed6

Tıkaç nasıl kullanılır?

`logger_init` ile kütüphaneyi başlatmanız gerekir ; bu fonksiyona yapılandırma dosyasının adını veya varsayılan ayarları kullanmak istiyorsanız `NULL` değerini iletmeniz gerekir. Ardından, `logger` log mesajları yazabilir, bir etiket, bir seviye ve bir mesaj iletebilirsiniz. Ö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 logger başlatılırken hata oluştu\n"); return 1; } /* "main" etiketiyle bir INFO seviyesi mesajı yazın */ logger("main", LOG_INFO, "Program başlatıldı"); /* "main" etiketiyle bir ERROR seviyesi mesajı yazın */ logger("main", LOG_ERROR, "Önemli hata"); /* Kütüphaneyi sonlandırın */ logger_end(); return 0; }
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 seviye mesajı

Örneğin :

2023-06-13 02:37:16 main INFO Program başlatıldı 2023-06-13 02:37:16 main ERROR Ölümcül hata

Yapılandırma dosyasındaki aşağıdaki değişkenler kullanılarak format değiştirilebilir:

  • %d: YYYY-MM-DD formatındaki tarih
  • %t: Saat (HH:MM:SS) formatındaki zaman
  • %c: mesaj etiketi
  • %l: mesaj düzeyi
  • %m: mesaj
  • %n: bir satır sonu

Örneğin, daha kısa bir format istiyorsak şunu kullanabiliriz:

[biçimler] basit = "%t %c %l %m%n"

Hangi detay seviyeleri mevcuttur?

GetPaidStock.com 648cc7c60325c

c logger, günlük mesajları için beş farklı detay seviyesi sunar:

  • LOG_DEBUG: Hata ayıklama mesajları için, geliştiriciler için faydalı.
  • LOG_INFO: Kullanıcılar için faydalı olan bilgilendirici mesajlar içindir.
  • LOG_WARN: Uyarı mesajları için kullanılır, anormal ancak kritik olmayan durumları bildirmek için faydalıdır.
  • LOG_ERROR: Hata mesajları için kullanılır; programın doğru çalışmasını engelleyen kritik durumları bildirmek için faydalıdır.
  • LOG_FATAL: Programın durdurulmasını gerektiren, geri döndürülemez durumları bildirmek için kullanışlı olan ölümcül mesajlar içindir.

Günlük mesajlarındaki ayrıntı düzeyi, `log_level` . Örneğin, yalnızca ERROR ve FATAL mesajlarını görüntülemek istiyorsanız şunu kullanabilirsiniz:

[genel] log_seviyesi = 3

Seviyeler, en ayrıntılıdan en az ayrıntılıya doğru 0'dan 4'e kadar numaralandırılmıştır. Varsayılan olarak, seviye 0'dadır ve tüm mesajları görüntüler.

Günlük dosyasının boyutunu nasıl kontrol edebilirim?

GetPaidStock.com 648cc93a4a071

`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'tan büyük olmasını istemiyorsanız şunu kullanabilirsiniz:

[genel] maksimum_dosya_boyutu = 1048576

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

Günlük dosyası maksimum boyutuna ulaştığında, c logger sayısal bir sonekle yeni bir dosya oluşturur. Örneğin, günlük dosyasının adı log.txt , oluşturulan ilk dosya log.txt.1 , ardından log.txt.2 ve bu şekilde devam eder. Oluşturulacak maksimum dosya sayısı, max_file_count . Örneğin, en fazla 10 günlük dosyası tutmak istiyorsanız şunu kullanabilirsiniz:

[genel] maksimum_dosya_sayısı = 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ükleme kütüphaneleri arasındaki fark nedir?

C logger, sadeliği ve hafif tasarımıyla öne çıkıyor. Bazı daha kapsamlı kütüphaneler kadar çok özellik sunmasa da, günlük kaydı işlemlerinin temel ihtiyaçlarını karşılıyor. Ayrıca C89 standardıyla uyumlu ve iş parçacığı güvenli.

Günlük kayıtlarını metin dışında başka bir biçimde nasıl görüntüleyebilirim?

C logger yalnızca metin formatındaki log mesajlarını destekler. JSON veya XML gibi başka bir format kullanmak istiyorsanız, kendi formatlama fonksiyonunuzu yazmanız ve bunu logger .

Günlük mesajlarını etiket veya seviyeye göre nasıl filtreleyebilirim?

c logger, log mesajlarının gelişmiş filtrelemesini sunmaz. Yalnızca `log_level` . Mesajları etikete veya düzeye göre filtrelemek istiyorsanız, kendi filtreleme fonksiyonunuzu yazmanız ve bunu `logger` .

Konsol veya dosya dışında başka bir yere log mesajları nasıl gönderebilirim?

C logger, log mesajları için yalnızca konsol ve dosyaları hedef olarak destekler. Mesajları veritabanı veya web servisi gibi başka bir hedefe göndermek istiyorsanız, kendi gönderme fonksiyonunuzu yazmanız ve bunu logger .

C-logger'da bir sorun olduğunda nasıl hata ayıklama yapabilirim?

`logger_debug` fonksiyonu . C günlük kaydedicinin doğru çalışıp çalışmadığını kontrol etmek için bu fonksiyonu istediğiniz zaman çağırabilirsiniz.

Çözüm

Clogger, C dili için basit ve verimli bir günlük kaydı kütüphanesidir. Değişken detay ve kontrol seviyelerinde günlük mesajlarını bir dosyaya veya konsola yazmanıza olanak tanır. Kurulumu ve kullanımı kolaydır ve bir yapılandırma dosyası aracılığıyla özelleştirme imkanı sunar. Clogger, nesne yönelimli programlama prensiplerine ; bu da belirli özelliklere ve yöntemlere sahip günlük kaydedici nesneleri oluşturmanıza olanak tanır. Clogger, C projelerine sorunsuz bir şekilde günlük kaydı işlevi eklemek isteyen geliştiriciler için ideal bir çözümdür.

Önceki makale : Bereal'deki tekrarlar nelerdir?
Sonraki makale: Facebook Messenger hatası mı? Kesinti sorunlarını düzeltmek için ne yapılmalı?
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!