2011-12-29 17 views
7

PHP işlevi veya PHP hata günlüğünü bir dize olarak almanın başka bir yolu var mı?PHP'den PHP hata günlüğü alın

Buna ihtiyacım var çünkü bir başkasının sunucusunda çalıştırdığım bir sitenin hata günlüğüne erişemiyorum. - Bana hata günlüğünü e-postayla göndermeyi teklif etti ama bu tam olarak uygun değil.

Hata günlüğünü bir php sayfasına çıkarmanın bir yolu var mı?


GÜNCELLEME

Ben şimdi bütün sunucunun hata günlüğü inceleyen gerçekten ancak, benim için ne olacak etmediğinin farkında

, sana için manuel error_log çağrıyı e-posta böyle bir şey yapabileceğini biliyorum kendiniz:

error_log('A really bad error',3,'[email protected]'); 

Sayfaları görüntülemek yerine e-postayla hata yapacak şekilde yapılandırmak mümkün müdür?

+0

Çok iyi bir çözüm değil ..., ancak hata günlük dosyasının yolunu bildiğinizde, içeriğini 'file_get_contents' ile alabilirsiniz. – evotopid

+0

Bkz. [Error_log] (http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log) php.ini ayarı. – mario

cevap

8

Güvenli bir sunucuda, evet. Ancak çoğu sunucuda iki kullanıcı vardır: apache ve [siz]. Sunucu günlüklerine erişiminiz yoktur, çünkü bunlar apache kullanıcısına (veya kullandığınız sunucuya) aittir.

Ancak, muhtemelen deneyebilirsiniz:

echo file_get_contents('/var/log/httpd/error_log'); 

Not: bir RedHat tabanlı apache sunucu üzerinde varsayılan konum bu.

GüncellemeHayır, error_log ile hata günlüğünü görüntüleyemezsiniz güncellenen soru
yansıtmak için farklı olabilir - bu web sunucusu tarafından işlenen alır tek yönlü bir süreçtir. Sadece günlüğü yazar, ama okuyamazsın.

Muhtemelen bu hataları gösterebilir: Hatta (onları posta, örneğin) tüm uyarıları ve bildirimleri işlemek için set_error_handler kullanabilirsiniz

ini_set('display_errors', 'On'); 
error_reporting(E_ALL); 

. Ama bu senin yapabileceğin kadar çok şey.

+0

Merhaba, bir debian sunucusundayım - sadece bunu denedim ama "işlem yapılmasına izin verilmedi" –

+0

Sonra doğru bir şekilde güvenli bir sunucu ;-) Sadece size günlükleri posta postalamak için olsun. –

+0

Tamam, güncellenmiş soruma bir göz atabilir misin? –