Builder

web application developer blog

Symfony ile üretim ortamından ekran görüntülü ve dataylı hata raporlarını email yoluyla almak

Üretim ortamında hata olmaz. Olursa da haberimiz olmaz. Çünkü hata mesajlarını ekranda göstermek tehlikelidir. Zaten son kullanıcı hata mesajını görse de size raporlamaz. Raporlasa da o rapor bizim bir işimize yaramaz.

“Aynı hatayı tekrar oluşturup, problemin sebini anlamaya çalışıyoruz” denir, ürüne değer kaybettirilir. Biraz daha tecrübeli geliştiriciler, hemen log dosyasını tarar ama o kadar veri içinden gerçek hatayı bulup çıkarmak da ayrı bir ustalık işi.

Peki ne yapmamız gerekli?

Öncelikle, bir geliştirici, son kullanıcıdan, bir hata ile karşılaştığında ne ister ve bu isteği otomatik olarak nasıl gerçekleştiririz sorusunu cevaplamamız lazım.

  • İyi bir hata raporunda ekran görüntüsü olmalı,
  • hatanın oluştuğu dosya, dosyanın satır numarası hatta işlev (function) ve aldığı parametreler, bu işlevi hangi işlev çağırdı gibi sorularında yanıtı olmalı.

Burada en kolayı ikincisi. Eğer sunucu ile veri alışverişini AJAX ile yapıyorsak birincisi de kolay.

  1. ilk olarak uygulamamıza html2canvas kütüphanesini eklemeliyiz:
  2. Ana javascript fonksiyonumuza JQuery AJAX istekleri ile hata almamız durumunu yakalamalıyız.
  3. Symfony tarafında oluşan hataları yakalamamız gerekiyor. Bunun için bir servis yazmamız gerkli. Yakaladığımız hatayı $_SESSION içine kaydedeceğiz. Ekran görüntüsü geldiğinde, ikisini birlikte gönderebilmek için
  4. Servis tanımlamalarını services.yml içinde yapıyoruz:
  5. Hata raporunun gönderileceği email adresini parameters.yml içine ekliyoruz

     
  6. İkinci adımda REPORTING_URL ile belirttiğimiz  adresi dinleyen bir Action yazmamız gerekiyor. Bu action, ekran görüntüsü ile $_SESSION içindeki hata raporunu paketleyip email yoluyla bize gönderecek. Bunu yaparken error_report.html.twig isminde bir twig template’inizin zaten var olduğunu varsayıyorum

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir