Bu cevap daha çok ölçeklenebilirlik konuları ile ilgilidir - eğer çalışan sayısı fazla olabiliyorsa ve / veya birden fazlası aynı anda yüksek oranda kütük üretebiliyorsa.
Evet, aynı anda birden çok günlük dosyası kullanmak iyi bir uygulamadır.
Gerçek zamanlı olarak birden fazla işçinin tek bir günlük dosyası günlüklerinde birleştirmeye çalışmak sorun yaratacaktır:
- mesaj kaybını önlemek için engelleme mekanizmalarının kullanılması işçileri yavaşlatır
- günlük iletileri, birleştirilmiş günlük dosyasında bozuk olabilir
- sınırlı yazma hızı nedeniyle günlükleri birleştiren merkezi bir günlük kaydı tesisi aşırı yüklenebilir, iletiler kaybolur
Paylaşım günlükleri (aynı anda birden çok günlük dosyasını kullanarak), bazı barındırma sağlayıcıları tarafından yüksek performanslı, ölçeklenebilir merkezi günlük hizmetleri sunan bir tekniktir. Örneğin, günlükleri dosyalara dışa aktarırken Google'ın StackDriver Günlüğü birden çok gölgeli günlük dosyası üretir. Gönderen Google Bulut Depolama Günlüğü girdileri :
Ne zaman günlükleri dışa bir Cloud Storage grubuna, Stackdriver Günlüğü kovaya dosya kümesi yazar. Dosyalar, günlük türüne ve tarihe göre dizin hiyerarşilerinde düzenlenir. Günlük türü, gibi basit bir ad syslog
veya benzer bir ad olabilir
appengine.googleapis.com/request_log
. Bu günlükler adlı bir grupta depolanmışsa my-gcs-bucket
, dizinler aşağıdaki örnekte olduğu gibi adlandırılır:
my-gcs-bucket/syslog/YYYY/MM/DD/
my-gcs-bucket/appengine.googleapis.com/request_log/YYYY/MM/DD/
Tek bir grup birden çok günlük türünden günlük içerebilir.
Yaprak dizinleri ( DD/
), her biri dosya adında belirtilen bir süre için dışa aktarılan günlük girişlerini tutan birden fazla dosya içerir. Dosyalar parçalanır ve adları bir parça numarasıyla biter
Sn
veya An
(n = 0, 1, 2, ...). Örneğin, içinde saklanabilecek iki dosya şunlardır directory
my-gcs-bucket/syslog/2015/01/13/
:
08:00:00_08:59:59_S0.json
08:00:00_08:59:59_S1.json
Bu iki dosya birlikte syslog
0800 UTC'den başlayan saat boyunca tüm örnekler için günlük girişlerini içerir . Tüm günlük girdilerini almak için, her zaman dilimi için tüm parçaları (bu durumda, dosya parçaları 0 ve 1'i) okumalısınız. Yazılan dosya parçaları sayısı, günlük kayıtlarının hacmine bağlı olarak her zaman aralığı için değişebilir.
Bu tür yüksek performanslı günlükleme hizmetleri ayrıca dosyalara günlük kaydı için alternatifler sunabilir, böylece günlük dosyalarının yönetimi ilgiliyse tamamen önlenebilir:
Son olarak - gerçek zamanlı günlük dosyası birleştirme, birden fazla günlük dosyasına sahip olmak çevrimdışı günlük yönetimine yardımcı olabilirse:
- aşamalı günlük yedekleme, sıkıştırma, arşivleme ve nihai bertaraf planlarını tasarlamak kolaydır
- birden çok günlük grubunun (logfiles) paralel işlenmesi mümkündür, bu da darboğaz etkilerini azaltır / önler
- dosya bölme ve yeniden yazma gerekmez