Auteur de la discussion #1
Logger ile Sistem Günlüğü

Giriş ve motivasyon
Bir sunucu ya da uygulama çalışırken, neyin neden çöktüğünü, hangi olayların ardışık adımlarda gerçekleştiğini bilmek hayatidir. Logger kullanımı bu görünmeyen zinciri ortaya çıkarır: hangi modül hangi mesajı ne zaman kaydetti, hangi hata istisnası yakalandı, kullanıcı eylemleri hangi sıralamayla tetikledi. Özellikle çok katmanlı mimarilerde (oturum yönetimi, cache katmanı, veritabanı bağlantıları) her adım için anlamlı bir log akışı oluşturmak, sorun tespiti ve performans analizi için vazgeçilmezdir.

Temel kavramlar ve uygulama mantığı
  • Log seviyeleri: DEBUG, INFO, WARNING, ERROR, CRITICAL. Geliştirme aşamasında DEBUG ile ayrıntılı izleme elde edilir; üretimde INFO-ERROR arası dengeli kullanılır. Örneğin kullanıcı kaydı sırasında bir hata oluşursa ERROR, süreç akışını bozan durumlarda WARNING kullanılır.
  • Benzersiz kontekst: log mesajlarına oturum kimliği, kullanıcı ID’si, istek ID’si gibi bağlam eklemek analiz süresini doğrudan hızlandırır. Örneğin [session_id=abc123] ve [user_id=987] gibi etiketlerle filtrelemek pratik olur.
  • Yapılandırma ve yönlendirme: log formatı zaman damgası, kaynak modül, dosya ve satır numarası içermeli;.throwing örnek olarak günlük dosyaları, merkezi log sistemi (SIEM, ELK) veya bulut tabanlı log depolama çözümlerine yönlendirme sağlanmalıdır.
  • Log döngülerinden kaçınma: aşırı ayrıntı, disk I/O ve ağ trafiğini boşa harcayabilir. Bunun için katman başına ayrı logger ve filtreler kullanılır; örneğin veritabanı katmanı için sadece ERROR ve WARNING kaydı tutulabilir.


Pratik örnekler ve yapılandırma önerileri
  • Basit Python örneği:

CODE
123456789101112131415
import logging

logger = logging.getLogger("sistem")
handler = logging.FileHandler("sistem.log")
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.INFO)

def kaydet(kullanici, islem, sonuc):
    logger.info("Kullanıcı %s %s -> %s", kullanici, islem, sonuc)

kaydet("u_123", "giriş", "başarılı")
logger.error("Veritabanı bağlantısı başarısız: %s", "timeout")

  • Üretimde sık kullanılan yapı: merkezi log sistemi veya log aggregator’a yönlendirme, log dökümünün zaman serileriyle izlenmesi ve uyarı kuralları (threshold) ile anomali tespitine olanak verir. Örneğin herhangi bir saat diliminde 500 hatasının artması, hemen incelemeye alınabilir.
  • Güvenlik ve gizlilik: loglarda kullanıcı şifreleri, kredi kartı vb. hassas verileri içermemek için filtreler uygulanır; PII verilerin maskeleme veya tamamen güvenli alanlarda saklanması gerekir.


Sonuç ve kapanış
Sistem günlüğü, operasyonel farkındalığın temel taşıdır. Doğru konfigürasyon, uygun bağlam bilgisi ve akıllı yönlendirme ile loglar, sorunun kaynağına hızlı ulaşımı ve performans iyileştirmelerini doğrudan destekler. Loglama stratejisi, yalnızca hata mesajı vermek yerine bir dizi somut olayın kronolojisini sunarak, bakım ekibinin karar süreçlerini hızlandırır.

Vous devez être connecté pour répondre.

0 citations sélectionnées