Günlükler Nasıl Yazılır

İçindekiler:

Günlükler Nasıl Yazılır
Günlükler Nasıl Yazılır

Video: Günlükler Nasıl Yazılır

Video: Günlükler Nasıl Yazılır
Video: Nasıl Günlük Tutulur - Günlük Tutmanın En Basit Yolu 2024, Mayıs
Anonim

Günümüzde çoğu uygulama ve sistem uygulaması, çalışmalarının süreci, hataları ve arızaları ile ilgili bilgileri periyodik olarak günlük adı verilen özel günlüklere kaydeder. Çoğu genel amaçlı işletim sistemi, standart bir programlama arabirimi kullanarak günlük yazmanıza olanak tanıyan hizmetler sağlar.

Günlükler nasıl yazılır
Günlükler nasıl yazılır

Gerekli

  • -C derleyicisi;
  • - Windows Platformu SDK'sı;
  • - glibc için paket geliştirin.

Talimatlar

Aşama 1

Windows ailesinin işletim sistemleri altında çalışmak üzere tasarlanmış uygulamanızdan sistem günlüğüne günlük yazma desteği ekleyin.

Uygulamayı bir olay kaynağı olarak kaydetmek için RegisterEventSource API işlevini, günlüğe bir giriş eklemek için ReportEvent işlevini ve RegisterEventSource tarafından döndürülen tanıtıcıyı kapatmak için DeregisterEventSource işlevini kullanın.

Uygulamanın başlatılması sırasında RegisterEventSource'u çağırmak ve döndürülen tanımlayıcıyı her zaman kaydetmek mantıklıdır, böylece günlükteki girişler programda farklı yerlerden yerleştirilebilir. Windows günlüğüne yazmanın en basit örneği şöyle görünebilir:

HANDLE hLog = RegisterEventSource (NULL, "ApplicationName");

if (hLog! = NULL)

{

if (ReportEvent (hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, "Mesaj metni / 0", NULL))

{

// olay başarıyla kaydedildi

}

DeregisterEventSource (hLog);

}

ReportEvent işlevinin anlamı hakkında daha fazla ayrıntı, https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx adresindeki MSDN'de bulunabilir. Ek olarak, uygulamanın yürütülebilir modülü hakkında sistem kayıt defterine bazı veriler koymanız ve modülün kendisine veya bir üçüncü taraf dinamik kitaplığına belirli bir biçimde kaynaklar eklemeniz gerekir. Olay günlüğü hizmetinin kayıt defteri anahtarları hakkında daha fazla bilgi için bkz.

Adım 2

Linux uyumlu işletim sistemlerinde oturum açma genellikle syslog arka plan programı kullanılarak yapılabilir. Bu hizmet, bildirimleri syslog.h başlık dosyasına yerleştirilen bir dizi işlev biçiminde uygulama düzeyinde bir arabirime sahiptir.

Bir uygulamadan veya kitaplıktan syslog hizmetine bağlantı oluşturmak için openlog işlevini kullanın. Günlüğe mesaj koymak için syslog veya vsyslog işlevlerini çağırın. Olayların kaydedilmesi sona erdikten sonra veya uygulama çıkış yaptığında, closelog işlevini çağırarak servise olan bağlantıyı kapatın. Ayrıca, setlogmask işlevini kullanarak belirli bir önceliğe sahip olay kayıtları ekleyen çağrıları yoksaymak için ayarları yapılandırabilirsiniz. Günlüğe mesaj yazma örneği şöyle görünebilir:

openlog ("Uygulamam", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "Uygulamam %d PID ile başlatıldı", getuid());

syslog (LOG_INFO, "Bilgi mesajı!");

yakın günlüğü ();

Syslog API işlevlerinin parametreleri hakkında daha fazla bilgi için libc bilgi belgelerine bakın.

Aşama 3

Olay kalıcılığı alt sisteminin kendi uygulamanızı kullanarak günlükleri rastgele dosyalara yazın. Bu sorunun en basit çözümlerinden biri, global kapsamda, biri bilgi ekle modunda belirli bir adla bir dosya açan, ikincisi onu kapatan ve üçüncüsü, kendisine iletilen bir mesaj dizesi ekleyen birkaç işlev oluşturmaktır. bu dosyaya bir parametre. Kavramsal olarak, bu çözüm Linux'taki syslog programlama arayüzüne benzer.

Sırasıyla bir dosyayı açmak ve kapatmak için C standart kitaplığının fopen ve fclose işlevlerini kullanın. Dosyaya bilgi eklemek için fwrite'ı arayın. Ayrıca, platforma özgü işlevleri (örneğin, Windows altında CreateFile) ve dosyalarla çalışma işlevselliğini kapsayan kullanılan çerçevelerin nesne yöntemlerini de kullanabilirsiniz.

Önerilen: