Günlük satırı program tarafından görüldüğünde geçerli sistem saatinin aksine, günlükleri günlük tarihine göre bölmek için basit bir program, datelog yazdım. Bu, kronolog veya başka bir günlük ayırıcısının tam olarak yaptığı şey olabilir veya olmayabilir, ancak kendi yazımı yazmak, başkalarının ne yaptığını bulmaktan daha hızlıydı.
Günlüğe kaydedilen istekte yıl ve ay kullanılarak, satır daha sonra günlüğe kaydedilen verilerden hesaplanan YYYYMM'yi içeren bir dosyaya veya boruya yazılır. Evet, bu genel günlük formatı için biraz belirgindir. İlk [tarihin sınırlandırıldığı varsayılır. IPv6 adreslerine dikkat edin. :)
Günlük analizi için, her günlüğün gerçekten yalnızca ilgili aylara ilişkin istekleri içermesi önemlidir ve her günlük, doğru analiz sonuçları için ideal olarak eksiksiz olmalıdır. Dosya ayırıcıyı günlük ayırıcıdaki geçerli saate göre belirlemek yeterli değildir, çünkü 23:59:59 'dan başlayan yavaş bir istek, yanlış ay için günlük dosyasında son bulur.
Bunu nginx başlamadan önce varlığını kontrol eden adlandırılmış bir fifo aracılığıyla nginx ile kullanıyorum. Programda, hata tespiti ve arabelleğe alınmış çıktı arasında bir tradeoff olduğuna dikkat edin, burada datelog şu anda performans nedenlerinden dolayı arabelleğe alınmış çıktıyı tercih etmektedir, bu nedenle herhangi bir günlük verisini kaybetmemek için kurulumunuzun özellikle kabuk boruları kullanırken gerçekten çalıştığından emin olun. .
Kaynak kodu: http://stuge.se/datelog.c
Lütfen bana herhangi bir geri bildirim ve elbette yamalar göndermek için çekinmeyin!