Php Error Log Görüntüleme
-
Hocalarım şunu yapmak istiyorum..
Mesela apache error log'u görüyoruz ya terminalde xxx satırda xxx verisi bulunamadı hatası vs aldığımızda bize error log olarak dönüyor tarayıcıya basılmıyor bu..
Bende şunu istiyorum Mesela Erorr_log_gor.php diye bir sayfam olsun..
Ben bu sayfada bu apacheye gönderilen hataları görmek istiyorum.
Şu şekilde bir hatamız olsun mesela
[Fri Mar 31 21:29:44.542527 2017] [:error] [pid 3304:tid 1812] [client ::1:4652] PHP Fatal error: Call to undefined function size() in C:\\xampp\\htdocs\\Deneme.php on line 5, referer: http://localhost/Deneme.php
Diye bir hata aldığımızı düşünelimBende Error_log_gor.php 'ye direk bunu basmak istiyorum ama şu şekilde basıcağım diyelim (Bunu ben yaparım kodlar ile)
Deneme.php dosyasında 5. Satırda bir hata oluştu Tarih : Fri Mar 31 21:29:44.542527 2017 Gibi... -
$errors = file_gets_contents("path/to/apache/logs");
-
snnyk bunu yazdı
$errors = file_gets_contents("path/to/apache/logs");
Hocam Bu sıkıntılı bir durum getirir mi ? Yani bunu yapsam düzenleyip son kullanıcıya sunsam herhangi bir güvenlik açığı oluştururmu bilgin var mı ?
-
son kullanıcıya sistem hatalarını göstermek için ne gibi sebeblerin var ki hocam ?
tam olarak ne yapmak istediğini anlatırsan daha sağlıklı alternatif yollar bulunabilir
-
Bir sistem geliştiriyoruz 5 kişi ile herkesin sorumlu olduğu sayfalar mevcut .
Bu sayfalarda oluşan hataları Android telefona bildirim gitsin e-posta atılsın vs gibi işlemler yaptıracağım....
Sistem aktif olarak kullanıldığında sürekli error_log'u kontrol etmek yerine sadece sorumlu olduğumuz ekran hatalarına bakmak istiyoruz
-
bu şekilde kontrolsüz gelişen hatalar ile dosya içinden logları alıp
sayfaları sorumlu kişiye ataman çok zor ve kararsız bi işlem olur onun yerine
hataları kendin yakalayarek yeni hatalar türetip her hataya sorumlu kullanıcının id sini vs. vererek gitmen daha basit olurmisal;
$islem = false; if(! $islem) { error_log("bir_fonsiyon islemi false verdi", 0); }
Bu şekilde sadece bu hata php error log doasına kaydedilir ve ekrana uyarı basmaz 0 ı bir yaparsan ekrana basar
error_log("bir_fonsiyon islemi false verdi", 0 , "sorumlueposta@domain.com");
olarak kullanırsan hatayı eposta olarak gönderir
http://php.net/manual/en/function.error-log.php
-
MhmdAlmz bunu yazdı
Bir sistem geliştiriyoruz 5 kişi ile herkesin sorumlu olduğu sayfalar mevcut .
Bu sayfalarda oluşan hataları Android telefona bildirim gitsin e-posta atılsın vs gibi işlemler yaptıracağım....
Sistem aktif olarak kullanıldığında sürekli error_log'u kontrol etmek yerine sadece sorumlu olduğumuz ekran hatalarına bakmak istiyoruz
Şimdi, php'nin hata günlüğü production ortamında sistem yöneticisinin sorumluluğunda olmalı. Çünkü uygulamanın geliştirme aşaması bitmiş, testleri yapılmış ve kullanıma sunulmuştur.
Uygulamanın geri kalanında try-catch blokları kullanmak ve burası önemli: "Doğru Kullanmak" gerekli. Yani, bazen istisnayı yakalayıp yutmak yerine çağıranlara doğru yaymak gerekebilir. Bazen de tam tersi. Çoğu zaman da istisnanın oluşturduğu yan etki yüzünden betiği die ile tamamen sonlandırmak gerekebilir. Hedefimiz istisnayı durumda yanlış sonuç üretimini engellemek ve veri bütünlüğünü korumak.
Kullanmadım ama https://secure.php.net/manual/en/function.set-error-handler.php bi incele.
-
YeniHarman , abi Try catch blokları tabiki de olmazsa olmazımız. Fakat şöyle bir sorun var. Her insan kusursuz değildir tabiki.. En ufak bir hata projenin çalışma sürecini etkilediği anda çok büyük kayıplar doğurabilir.
Büyük bir firmanın programının 10 dakika kullanılamaz hale gelmesi demek senin piyasadaki saygınlığının kaybolması demek..
Onun yerine biz projeyi Spiral model ile geliştiriyoruz. Testler yapıldıktan sonra ana sistem'i güncelleyip son kullanıcıya sunuyoruz.. Fakat istisnai durumların dışında oluşan hatalar can sıkıcı.
Bunları çözmek için biraz hız kazandıralım dedik aklımıza bu geldi..
Attığın linki projemizde zaten kullanıyoruz.. Istisnai durumlar zaten olmakta fakat bir test mühendisimiz vs yok.
Bizim test mühendislerimiz son kullanıcı şuan.. Bizim de projeyi geliştirirken alınan hataları önlememiz gerekiyor..
Örneğin 1 sayfada
if(isset($_GET["ID])) { die("Yetkisiz Işlem"); }
gibi bir kod bloğunu unutmuş geliştiren kişi ve biz bunu test ederken de gözümüzden kaçmışş
Bu da gün içerisinde çok kullanılan bir sayfa. Tam bu noktada gümledi sistem ve bütün müşterilerimizin işleri aksadı..
Heh işte tam burda -1453 puan alıyoruz ki haklılar..
Ben böyle bir durumda direk harekete geçmek için şeetmiştim...
snnyk, hocam bunun gibi önemlerimiz zaten mevcut .
Spiral model geliştiren kişiler böyle sorunlarla nasıl baş ediyor acaba :/
MhmdAlmz tarafından 01/Nis/17 02:45 tarihinde düzenlenmiştir -
hocam controller de işi bitirmen lazım
çok katı validate fonksiyonları kullanırsan başın ağrımazfatal error e yer olmamalı production bir projede
-
snnyk bunu yazdı
hocam controller de işi bitirmen lazım
çok katı validate fonksiyonları kullanırsan başın ağrımazfatal error e yer olmamalı production bir projede
Tamamdır hocam çok teşekkürler. Tüm olayları değerlendirip son kullanıcıya rapor verelim . Try catch blokları ile devam edelim :)