Günlük dosyaları, ciddi bir uygulamanın kritik bir parçasıdır: Uygulamadaki günlük kaydı iyi ise, o zaman hangi önemli olayların gerçekleştiğini görmenize izin verir; hangi hatalar oldu; ve hangi izlemede tasarlandığının ötesine geçen genel uygulama sağlığı. Bir sorun hakkında duymak, uygulamanın yerleşik teşhislerini kontrol etmek (web konsolunu açmak veya JMX gibi bir teşhis aracı kullanmak) ve ardından kontrol etmek için başvurmak yaygındır. log dosyaları.
Metin olmayan bir format kullanırsanız, hemen bir engelle karşı karşıya kalırsınız: ikili günlükleri nasıl okursunuz? Üretim sunucularınızda olmayan log okuma aracı ile! Ya da öyle, ama ah canım, yeni bir alan ekledik ve bu eski okuyucu. Bunu test etmedik mi? Evet, ama kimse burada konuşlandırmadı. Bu arada, ekranınız sizi ping yapan kullanıcılar ile aydınlatmaya başlıyor.
Belki de bu sizin uygulamanız değildir, ancak destek yapıyorsunuz ve bunun başka bir sistem olduğunu biliyorsunuz ve WTF? Günlükler ikili biçimdedir. Tamam, wiki sayfalarını okumaya başlayın ve nereden başlıyorsunuz? Şimdi onları yerel makineme kopyaladım, ama - bozuk mu? Bir tür ikili olmayan transfer yaptım mı? Yoksa günlük okuma aracı berbat mı oluyor?
Kısacası, metin okuma araçları platformlar arası ve her yerde bulunur ve günlükler genellikle uzun ömürlüdür ve bazen aceleyle okunmaları gerekir . İkili bir format icat ederseniz, iyi anlaşılmış ve kullanımı kolay araçların dünyasından kesilirsiniz. Sadece ihtiyacınız olduğunda ciddi işlevsellik kaybı.
Günlüğe kaydetme ortamlarının çoğu bir uzlaşmaya yol açar: mevcut günlükleri okunabilir ve hazır tutar ve eskilerini sıkıştırır. Bu, sıkıştırma işleminden faydalanacağınız anlamına gelir - daha doğrusu, çünkü, ikili bir biçim günlük iletilerini küçültmez. Aynı zamanda, kullanabileceğiniz daha az ve grep benzeri ve.
Peki, ikili kullanmanın ne gibi yararları olabilir? Az miktarda alan verimliliği - giderek önemsiz. Daha az (veya daha küçük) yazar mı? Eh, belki - aslında, yazma sayısı disk-komisyon sayısıyla ilişkili olacaktır, bu nedenle log-satırları disk blok boyutundan önemli ölçüde daha küçükse, SSD yine de yeni bloklar atayacaktır. Yani, eğer ikili ise uygun bir seçimdir:
- çok miktarda yapılandırılmış veri yazıyorsunuz
- kütükler özellikle hızlı bir şekilde oluşturulmalıdır
- Onları "destek koşulları" altında analiz etmeniz gerekmez.
ancak bu uygulama günlüğüne daha az benziyor; bunlar çıktı dosyaları veya etkinlik kayıtlarıdır. Bunları bir dosyaya koymak muhtemelen bir veritabanına yazmaktan sadece bir adım uzaklıktadır.
DÜZENLE
Burada "program günlükleri" (günlük kaydı çerçevelerine göre) vs "kayıtlar" (erişim günlüklerinde, giriş kayıtlarında olduğu gibi) arasında genel bir karışıklık olduğunu düşünüyorum. Sorunun ikincisiyle en yakından ilgili olduğundan şüpheliyim ve bu durumda konu çok daha az iyi tanımlanmış. Bir mesaj kaydı veya etkinlik kaydının kompakt bir formatta olması, özellikle sorun giderme yerine iyi tanımlanmış ve analiz için kullanılması muhtemel olduğu için kabul edilebilir. Bunu yapan araçlar tcpdump
ve Unix sistem monitörü sar
. Öte yandan, program kayıtları çok daha fazla geçici olma eğilimindedir.