PHP Hata ve Günlük Fonksiyonları

PHP Error Tanıtımı

Error ve Logging fonksiyonları, hataları işlemek ve kaydetmek için size olanak tanır.

Error fonksiyonları, kullanıcıların hata işleme kurallarını tanımlamalarını ve hata kaydetme yöntemini değiştirmelerini sağlar.

Logging fonksiyonları, kullanıcıların uygulamalarını kaydetmelerini ve log mesajlarını e-postalara, sistem günlüğüne veya diğer makinalara göndermelerini sağlar.

error fonksiyonları, hata işleme ve kaydetmeyi tamamlamak için kullanılır.

error fonksiyonları, kendi hata işleme kurallarımızı tanımlamamızı ve hata kaydetme yöntemini değiştirmemizi sağlar.

logging fonksiyonları, mesajları doğrudan diğer makinalara, e-postalara veya sistem günlüğüne göndermemizi sağlar.

error reporting fonksiyonları, hata türlerini ve seviyelerini belirlememizi sağlar.

Kurulum

PHP hata fonksiyonları PHP'nin çekirdek parçasıdır. Bu fonksiyonları kurmadan kullanabilirsiniz.

Çalışma zamanı yapılandırması

error fonksiyonunun davranışı php.ini'deki ayarlara bağlıdır.

Errors ve logging yapılandırma seçenekleri aşağıdaki gibidir:

Ad Varsayılan değer Açıklama Değiştirilebilir aralık
error_reporting NULL Hata raporlama seviyesini (tamsayı veya adlandırılmış sabit) ayarlayın. PHP_INI_ALL
display_errors "1"

Hataların ekran olarak çıktıya dökülüp dökülmeyeceğini veya kullanıcıya gizlenip gizlenmeyeceğini belirler.

Dikkat:Bu özellik üretim sistemlerinde kullanılmamalıdır (sadece geliştirme için desteklenir)

PHP_INI_ALL
display_startup_errors "0"

display_errors açıksa bile, PHP başlama sürecindeki hata bilgileri gösterilmez.

Açıklama: display_startup_errors'ı açma amacı dışında kapalı olarak ayarlanması şiddetle tavsiye edilir.

PHP_INI_ALL
log_errors "0"

Sökmelerde yürütme sırasında çıkan hata bilgilerinin sunucu hata günlüğü veya error_log'a kaydedilip kaydedilmeyeceğini ayarlayın.

Açıklama: Bu, sunucuya özgü belirli bir yapılandırma öğesidir.

Açıklama: Üretim sistemlerinde, web sitesinde gösterilen hata bilgilerini hatırlama günlüğünü kullanmanız şiddetle tavsiye edilir.

PHP_INI_ALL
log_errors_max_len "1024"

log_errors'ın maksimum bayt sayısını ayarlayın. error_log, hata kaynağı hakkında bilgi ekler.

Varsayılan değeri 1024'tür, 0 olarak ayarlanırsa uzunluk sınırsız olur.

Bu uzunluk ayarı, kaydedilen hatalar, gösterilen hatalar ve $php_errormsg üzerinde sınırlayıcı etkiye sahiptir.

PHP_INI_ALL
ignore_repeated_errors "0"

规定是否记录重复的错误信息。

重复的错误必须出现在同一个文件中的同一行代码上,除非 ignore_repeated_source 设置为 true。

PHP_INI_ALL
ignore_repeated_source "0"

规定是否记录重复的错误信息。忽略重复消息时,也忽略消息的来源。

当该设置开启时,重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。

PHP_INI_ALL
report_memleaks "1" 如果该参数被设置为 On(默认),则会显示由 Zend 内存管理器侦测到的内存泄露报告。 PHP_INI_ALL
track_errors "0" 如果开启,最后一个错误将永远存在于变量 $php_errormsg 中。 PHP_INI_ALL
html_errors "1" 在错误信息中关闭 HTML 标签。
  • PHP_INI_ALL
  • PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors "0" 如果启用,则关闭正常的错误报告,并将错误的格式设置为 XML-RPC 错误信息的格式。 PHP_INI_SYSTEM
xmlrpc_error_number "0" 用作 XML-RPC faultCode 元素的值。 PHP_INI_ALL
docref_root "" (available since PHP 4.3) PHP_INI_ALL
docref_ext "" (available since PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL 规定错误信息之前输出的字符串。 PHP_INI_ALL
error_append_string NULL 规定错误信息之后输出的字符串。 PHP_INI_ALL
error_log NULL

设置脚本错误将被记录到的文件。该文件必须是 web 服务器用户可写的。

如果使用了特殊值 syslog,则将错误信息发送到系统日志记录器。

PHP_INI_ALL

PHP Hata ve Günlük Fonksiyonları

函数 Açıklama
debug_backtrace() 生成 backtrace。
debug_print_backtrace() 打印 backtrace。
error_get_last() 返回最后发生的错误。
error_log() 向服务器错误记录、文件或远程目标发送错误消息。
error_reporting() 规定报告哪个错误。
restore_error_handler() 恢复之前的错误处理程序。
restore_exception_handler() Önceki istisna işleme programını geri yükleyin.
set_error_handler() Kullanıcı tanımlı hata işleme fonksiyonunu ayarlayın.
set_exception_handler() Kullanıcı tanımlı istisna işleme fonksiyonunu ayarlayın.
trigger_error() Kullanıcı düzeyinde hata mesajları oluşturun.
user_error() trigger_error() için takma ad.

PHP 5 önceden tanımlanmış hata ve günlük sabitleri

Değer Sabit Açıklama
1 E_ERROR Çalışma zamanı ölümcül hatalar. Düzeltilmeyen hatalar. Scriptin çalışmasını durdurur.
2 E_WARNING Çalışma zamanı olası hatalar. Scriptin çalışmasını durdurmaz.
4 E_PARSE Derleme sırasında发生的语法解析错误。解析错误仅由分析器 oluşturulur.
8 E_NOTICE Çalışma zamanı bildirimleri. Scriptin hata olarak belirtilebilecek olası durumları belirtir, ancak normal çalışan bir script içinde de benzer bildirimler olabilir.
16 E_CORE_ERROR PHP başlatma sırasında发生的致命错误。Bu hata E_ERROR benzeridir, ancak PHP motoru çekirdeği tarafından oluşturulur.
32 E_CORE_WARNING PHP başlatma sırasında发生的警告(非致命错误)。E_WARNING benzeridir, ancak PHP motoru çekirdeği tarafından oluşturulur.
64 E_COMPILE_ERROR Derleme sırasında发生的致命错误。E_ERROR benzeridir, ancak Zend script motoru tarafından oluşturulur.
128 E_COMPILE_WARNING Derleme sırasında发生的警告(非致命错误)。E_WARNING benzeridir, ancak Zend script motoru tarafından oluşturulur.
256 E_USER_ERROR Kullanıcı tarafından oluşturulan hata bilgileri. E_ERROR benzeridir, ancak kullanıcı kendi kodunda PHP fonksiyonu trigger_error() kullanarak oluşturur.
512 E_USER_WARNING Kullanıcı tarafından oluşturulan uyarı bilgileri. E_WARNING benzeridir, ancak kullanıcı kendi kodunda PHP fonksiyonu trigger_error() kullanarak oluşturur.
1024 E_USER_NOTICE Kullanıcı tarafından oluşturulan bildirim bilgileri. E_NOTICE benzeridir, ancak kullanıcı kendi kodunda PHP fonksiyonu trigger_error() kullanarak oluşturur.
2048 E_STRICT PHP kodunun değişiklik önerilerini etkinleştirin, böylece kodun en iyi işbirliği ve ileri uyumluluğunu sağlayın.
4096 E_RECOVERABLE_ERROR Yakalanabilir kritik hata. Bu, PHP motorunun istikrarsız bir durumda olduğuna işaret eden çok tehlikeli bir hatadır, ancak PHP motorunun istikrarsız hale gelmemiştir. Bu hata kullanıcı tarafından tanımlanmış bir hata ele alıcı tarafından yakalanmadıysa (set_error_handler() bakınız), E_ERROR olarak dönüşecek ve betik çalışmayı durduracaktır.
8192 E_DEPRECATED Çalışma zamanı bildirimleri. Etkili olduğunda, gelecekteki sürümlerde normal çalışamayabilecek kodlara uyarı verir.
16384 E_USER_DEPRECATED Kullanıcı tarafından oluşturulan uyarı bilgileri. E_DEPRECATED benzeri, ancak kullanıcı PHP fonksiyonları trigger_error() kullanarak kodunda oluşturur.
32767 E_ALL E_STRICT dışındaki tüm hata ve uyarı bilgileri.