Hızlı Özet (TL;DR)
Geleneksel düz metin loglar (console.log("Kullanıcı giriş yaptı: " + id)), sistemler büyüdükçe aranması ve filtrelenmesi imkânsız bir yığına dönüşür. Yapılandırılmış loglama (Structured Logging); her log kaydının anahtar-değer çiftlerinden oluşan standart bir JSON nesnesi olarak üretilmesidir. Dağıtık mikroservislerde bir isteğin servisler arasındaki tüm yolculuğunu takip edebilmek için her isteğe benzersiz bir Correlation ID atanmalı ve merkezi log platformlarına (ELK, Grafana Loki) aktarılmalıdır.
Düz Metin Log vs Yapılandırılmış JSON Log
İki log formatı arasındaki operasyonel fark:
| Kriter | Düz Metin Log (Unstructured) | Yapılandırılmış JSON Log (Structured) |
|---|---|---|
| Format | [2026-09-17 14:00] Hata oluştu fatura: 104 | {"tarih":"...","seviye":"ERROR","faturaId":104} |
| Arama Yeteneği | Yalnızca metin tarama (Grep/Regex) | Alan bazlı sorgulama (faturaId = 104 AND sure > 500ms) |
| Otomasyon ve Alarm | Hataları otomatik ayrıştırmak zordur | Slack/e-posta alarmlarına anında tetikleyici bağlanır |
| Dağıtık İzleme | Servisler arası ilişki kurulamaz | Correlation ID ile baştan uca tek tıkla izleme |
Correlation ID (İlişkilendirme Kimliği) Mimarisi
Bir kullanıcı web arayüzünden “Siparişi Tamamla” düğmesine bastığında istek sırasıyla API Gateway, Sipariş Servisi, Ödeme Servisi ve Fatura Servisi’nden geçer.
- API Gateway gelen isteğe benzersiz bir kimlik atar:
X-Correlation-ID: req-7f9a-11ee - İlgili servisler diğer servislere çağrı yaparken bu başlığı ileriye taşır.
- Her servis kendi logunu üretirken bu ID’yi JSON içine gömer.
- Bir hata meydana geldiğinde sistem yöneticisi bu tek ID’yi merkezi arama kutusuna yazarak isteğin tüm yaşam döngüsünü milisaniyesi milisaniyesine analiz eder.
Log Seviyeleri Nasıl Belirlenmeli?
- DEBUG: Yalnızca geliştirme ve yerel test aşamasında detaylı akış bilgisi. Üretimde kapatılmalıdır.
- INFO: Sistemin normal işleyişindeki önemli kilometre taşları (Sipariş oluşturuldu, kullanıcı oturum açtı).
- WARN: Beklenmeyen ancak sistemin çalışmasını durdurmayan durumlar (Tekrar denenen API isteği, dolmak üzere olan disk).
- ERROR: Kullanıcı işleminin başarısız olmasına yol açan istisnalar (Veritabanı bağlantı hatası, 500 hataları).
Yüksek erişilebilirlik, 5651 yasal mevzuat uyumu ve gelişmiş log izleme altyapıları için KVKK 5651 Yasal Loglama ve Özel Yazılım Geliştirme sayfalarımızı inceleyebilirsiniz.