Symfony2 Monolog ile Hata Bildirimleri Loglama ve E-Posta Bildirimleri

Bir yazılım projesinin olmazsa olmaz yapı taşlarından birisi Error ve Bug Tracker’dir (hata izleyicileridir). Geliştirdiğiniz bir Symfony2 web projesindeki hata bildirimlerini loglamak, soket servislerine ve bildirim sunucularına rapor göndermek için Monolog kütüphanesini kullanabilirsiniz.

Symfony2 ile default vendor (varsayılan) olarak gelen Monolog kütüphanesini diğer PHP projelerinde kullanmak için composer paket yöneticisini kullanıp doğrudan kurabilirsiniz.

Örnek Senaryo:

Yazılım projemizde 400 ve 500 serisi bir hata aldığımız zaman (401, 403, 404, 500 vs.) bunu istediğiniz bir dizindeki .log dosyasında depolasın ve özel bir formatta belirttiğimiz e-posta adresine iletsin. Bu log dosyasında -eğer oturum açıldıysa- oturum açan kullanıcı hakkında ek bilgiler de yer alsın.

Not: Oturum açan kullanıcının bilgisine ulaşmak için Symfony2 projenizde FOSUserBundle kurulu olmalı ve oturum açmış olmalısınız.

1. Adım: config_prod.yml (Geliştirme aşamasında config_dev.yml’ı kullanmalısınız.)

 2. Adım: config.yml

3. Adım: AppBundle/Controller/SessionRequestProcessor.php

 4. Adım: parameters.yml (Swift Mailer ile e-posta gönderimi için)

 5. Adım: config.yml (Swift Mailer ile e-posta gönderimi için)

 6. Adım: Bir hata yapın! :)

Her şey yolunda gittiyse belirttiğiniz dizine bir “hata.log” dosyası oluşmuş olacak ve e-posta kutunuzda yeni bir “Hata Bildirimi” göreceksiniz.

Hata bildirim seviyelerini (level) şöyle sıralayabiliriz:

Ek olarak Monolog ile elde ettiğiniz hataları log dosyasına yazdığınız gibi:

  • Redis, MongoDB, MySQL platformlarında da depolayabilirsiniz,
  • AMQB gibi kuyruk protokolllerine gönderebilirsiniz (rabbitmq),
  • HipChat, PushOver, Growl gibi yazılım ve servislere entegre edebilirsiniz.

Faydalı olması dileğiyle.

Kaynaklar:

 

Bir Cevap Yazın

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

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">