Konuyu Açan #1
grep ile bağlam satırlarıyla hata inceleme

Giriş ve neden önemli
Bir hata mesajını ya da beklenmeyen davranışı incelerken bağlamın nasıl bir etki yarattığını anlamak kritik olur. Özellikle sistem logları, uygulama çıktılarını analiz ederken sadece hatayı görmek yeterli değildir; çevreleyen satırlar (bağlam) hata anının nedenini gösterir. GNU grep komutu bu bağlamı elde etmek için -A, -B ve -C seçeneklerini sunar. Sayfanın geri kalanında, pratik örnekler ve ipuçlarıyla bağlam satırlarını nasıl etkili kullanabileceğini anlatıyorum.

Bağlamı temel düzeyde yakalamak: -A ve -B
  • -A N: hata satırından sonra N satır bağlamı gösterir. Örneğin -A 3 ile hata sonrası üç satırını hızlıca görürsünüz.
  • -B N: hata satırından önceki N satırı getirir. Özellikle log’da olayın öncesiyle birlikte bakmayı kolaylaştırır.
  • Örnek: grep -n -A 2 -B 1 "NullPointerException" app.log

Bu komut satır numaralarıyla hatayı işaret eder ve hata öncesi bir satır ile sonrası iki satır bağlamı sunar.

Kapsamı genişletmek: -C ve -e
  • -C N: -A ve -B’nin birleşimini tek adımda sağlar; önceki N, hata satırı, sonraki N satır olmak üzere toplam 2N+1 satırı getirir.
  • -e PATTERN: Birden çok desen üzerinde arama yapmanıza olanak verir. Örneğin farklı hata mesajlarını aynı seferde görmek için kullanışlıdır.


Pratik stratejiler ve ipuçları
  • Regex farkındalığı: Bağlamı yakalamak için deseni dikkatlice belirtin. Özellikle loglarda değişkenleşen hata formatter’ları olabilir.
  • Dosya başına arama: -H ile dosya adını çıktıda tutun; çok sayfalı loglarda hangi dosyada bulunduğunu hızlıca görmek gerekir.
  • Neye bakmalı: Hata satırı genelde istisna adı, hata kodu ya da belirli bir anahtar kelime içerir. Bu kelimeyi hedef alın.
  • Zaman sırası: Zaman damgası içeren loglarda bağlamı kronolojik olarak görmek için -n ile satır numarasını takip edin ve -C ile sıralı bağlam elde edin.


Uygulamalı örnekler
1) Belirli bir istisna adını içeren bağlamı yakalama
grep -n -C 2 "TypeError: " server.log
2) Çeşitli hata türlerini aynı anda görmek
grep -n -E -C 2 "Error:|Exception|CRITICAL" app.log
3) Belirli bir zaman aralığındaki hataları bağlamıyla inceleme
grep -n -C 3 -e "2026-11-01" -e "NullPointerException" app.log

Notlar
  • Büyük log dosyalarında -F veya -P modlarıyla desen performansını iyileştirmek gerekebilir.
  • Bağlamı kaybetmeden hangi satırın hata sebebi olduğunu hızlıca tespit etmek için önce deseni netleştirin, ardından -C ile bağlamı alın.


Bu yaklaşımı kendi loglarınızda uygularken hangi hataları daha net izlediğinizi paylaşırsanız, bağlamı hedefleyen farklı desen kümeleriyle daha net çalışmayı birlikte geliştirebiliriz.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
Toplam: 1 (üyeler: 1, misafirler: 0)
0 alıntı seçildi