PHP merkezi bir şekilde hata raporlamayı işlemek için bir yol var? Ben e-posta ile benim uygulama tarafından geçirilen tüm hataları haberdar olmak istiyorum.
Bütün bir uygulama için bunu başarmak için en iyi yolu nedir?
Teşekkürler
Kalyum belirtildiği gibi, set_error_handler
, but that only gets you part of the way. You also want to trap uncaught exceptions. For that, use set_exception_handler
a> kullanarak isteyeceksiniz.
Ne kendimi ne benim kod tuzak hataları var ve ben başka bir yerde yakalamak istisnaları approprate için bu hataları dönüştürmek. Yakalanmış değil bir şey için, ben oturum ve rapor onları, ve gerekirse uygun bir hata görüntülemek için varsayılan durum işleyici kullanın.
Sen set_error_handler zamanında istediğiniz şekilde hataları işlemek için kullanabilirsiniz.
Hataları 3 tipi vardır:
Bu tür uyarılar veya PHP ile gündeme ölümcül hataları gibi sistem hataları,. 404 hataları bu kategoride de vardır.
Bozuk veya başarısız sorgu veya veritabanı bağlantısı ile Veritabanı hataları.
Hataları her üç tip işler bir ErrorHandler
sınıf oluşturmak için en iyi yolu. Sistem hataları için, set_error_handler
kullanmak istiyorsunuz veya this one olarak çevrimiçi öğreticiler biri kadar okuyun.
Veritabanı, tüm sorguları işleyen bir merkezi veritabanı sınıfını kullanmanızı öneririz. Bu gibi bir şey kullanabilirsiniz:
$result=mysql_query($sql);
if (! $result)
{
$ErrorHandler->dbError(mysql_error(), $sql);
}
Böyle bir beklenen dosya veya veritabanı kaydını bulmak değil hatası gibi mantıksal hatalar, için, aynı Hataİşleyici sınıf çağırmak ve bir şey gibi yapardı:
if ($logicalError)
{
$ErrorHandler->appError('Something bad happened',__LINE__, __FILE__);
$ErrorHandler->showAppErrorPage();
}
İşte __FILE__
ve __LINE__
sabitler tam olarak bu hata oluştu yerini verecek. php.net sitede onlara kadar okuyun.
Sizin ErrorHandler
class, bir günlük dosyasına tüm hataları oturum size e-posta veya cep telefonunuza bile SMS / Yazı yapabilirsiniz. Ayrıca, bir hata sayfası kullanıcıyı yönlendirmek için kullanılan olabilir.