PHP ฟังก์ชัน Error และ Logging

PHP Error นิยาย

ฟังก์ชัน Error และ Logging อนุญาตให้คุณจัดการและบันทึกข้อผิดพลาด

ฟังก์ชัน Error อนุญาตให้ผู้ใช้กำหนดกฎการจัดการข้อผิดพลาดและแก้ไขวิธีการบันทึกข้อผิดพลาด

ฟังก์ชัน logging อนุญาตให้ผู้ใช้บันทึกหลักฐานในโปรแกรม และส่งข้อความบันทึกไปยังอีเมล บันทึกระบบหรือเครื่องอื่น

ฟังก์ชัน error ใช้สำหรับการจัดการและบันทึกข้อผิดพลาด

ฟังก์ชัน error อนุญาตให้เรากำหนดกฎการจัดการข้อผิดพลาดและแก้ไขวิธีการบันทึกข้อผิดพลาด

ฟังก์ชัน logging อนุญาตให้เราส่งข้อความตรงไปยังเครื่องอื่น อีเมลหรือบันทึกระบบ

ฟังก์ชัน error reporting อนุญาตให้เราเลือกประเภทของข้อผิดพลาดและระดับ

ติดตั้ง

ฟังก์ชัน error ของ PHP คือส่วนหนึ่งของ PHP core และไม่จำเป็นต้องติดตั้งก่อนที่จะใช้

การตั้งค่า Runtime

การปฏิบัติตัวฟังก์ชัน error ได้รับผลกระทบจากการตั้งค่าใน php.ini

ตัวเลือกการตั้งค่าข้อผิดพลาดและ logging ตามต่อไปนี้:

ชื่อ ค่าเริ่มต้น รายละเอียด สามารถแก้ไขได้
error_reporting NULL ตั้งระดับการรายงานข้อผิดพลาด (ตัวเลขหรือตัวค่านาม) PHP_INI_ALL
display_errors "1"

กำหนดว่าจะแสดงข้อผิดพลาดเป็นออกอากาศหรือปิดกั้นให้ผู้ใช้

注意:คุณไม่ควรใช้คุณสมบัตินี้ในระบบการดำเนินงาน (สนับสนุนแค่การพัฒนา)

PHP_INI_ALL
display_startup_errors "0"

แม้ว่าจะตั้งค่า display_errors ให้เป็น on แต่ข้อผิดพลาดของ PHP ในขั้นตอนเริ่มการทำงานจะไม่ถูกแสดง

หมายเหตุ: แนะนำอย่างแข็งขันที่จะตั้งค่า display_startup_errors ให้เป็น off ยกเว้นเพื่อวัตถุประสงค์การแก้ไข

PHP_INI_ALL
log_errors "0"

ตั้งค่าว่าจะบันทึกข้อผิดพลาดของสคริปต์ที่ปฏิบัติการเข้าบันทึกข้อผิดพลาดของเซิร์ฟเวอร์หรือ error_log หรือไม่

หมายเหตุ: นี่เป็นการตั้งค่าเฉพาะเจ้าของเซิร์ฟเวอร์

หมายเหตุ: ในระบบการดำเนินงานของแรงงาน แนะนำอย่างแข็งขันที่คุณจะใช้บันทึกข้อผิดพลาดเพื่อบันทึกข้อมูลข้อผิดพลาดที่แสดงบนเว็บไซต์

PHP_INI_ALL
log_errors_max_len "1024"

ตั้งค่าความยาวสูงสุดของ log_errors ในบันทึกข้อผิดพลาด ซึ่งจะเพิ่มข้อมูลเกี่ยวกับแหล่งของข้อผิดพลาด

ค่าเริ่มต้นคือ 1024 หากตั้งค่าเป็น 0 แสดงว่าไม่มีจำกัดความยาว

การตั้งค่าความยาวนี้มีผลบังคับต่อการบันทึกข้อผิดพลาดที่แสดงในบันทึก log และ $php_errormsg

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 ฟังก์ชัน Error และ Logging

函數 รายละเอียด
debug_backtrace() 生成 backtrace。
debug_print_backtrace() 打印 backtrace。
error_get_last() 返回最後發生的錯誤。
error_log() 向伺服器錯誤記錄、文件或遠程目標發送錯誤消息。
error_reporting() 規定報告哪個錯誤。
restore_error_handler() 恢復之前的錯誤處理程序。
restore_exception_handler() กู้ฟังก์ชันการจัดการความผิดพลาดที่กำหนดก่อนหน้า
set_error_handler() ตั้งค่าฟังก์ชันการจัดการความผิดพลาดที่กำหนดโดยผู้ใช้
set_exception_handler() ตั้งค่าฟังก์ชันการจัดการความผิดพลาดที่กำหนดโดยผู้ใช้
trigger_error() สร้างข้อความข้อผิดพลาดระดับผู้ใช้
user_error() ชื่อย่อสำหรับ trigger_error()

ค่าคงที่ประกาศความผิดพลาดและบันทึกเลข PHP 5

ค่า ค่าคงที่ รายละเอียด
1 E_ERROR ความผิดพลาดที่เป็นอย่างเฉียบะหนักในระหว่างการทำงาน ไม่สามารถซ่อมแซมได้ ทำให้สคริปต์หยุดทำงาน
2 E_WARNING ความผิดพลาดที่ไม่เป็นอย่างเฉียบะหนักในระหว่างการทำงาน ไม่ทำให้สคริปต์หยุดทำงาน
4 E_PARSE ความผิดพลาดการวิเคราะห์ภาษาในขณะบรรจุ (ความผิดพลาดที่เกิดขึ้นโดยตัววิเคราะห์)
8 E_NOTICE ข้อความแจ้งเตือนในระหว่างการทำงาน (ระบุว่าสคริปต์เจอสถานการณ์ที่อาจทำให้เกิดความผิดพลาด แต่ในบางครั้งสคริปต์ก็อาจทำงานได้ตามปกติ)
16 E_CORE_ERROR ความผิดพลาดอย่างเฉียบะหนักที่เกิดขึ้นในขั้นตอนเริ่มต้นการรับของ PHP คล้าย E_ERROR แต่ที่เกิดขึ้นโดยสายนิวมาตรฐานของ PHP
32 E_CORE_WARNING เตือนที่เกิดขึ้นในขั้นตอนเริ่มต้นการรับของ PHP (ไม่เป็นความผิดพลาดอย่างเฉียบะหนัก) คล้าย E_WARNING แต่ที่เกิดขึ้นโดยสายนิวมาตรฐานของ PHP
64 E_COMPILE_ERROR ความผิดพลาดอย่างเฉียบะหนักขณะบรรจุ (คล้าย E_ERROR แต่ที่เกิดขึ้นโดย Zend และเครื่องกำเนิดสคริปต์)
128 E_COMPILE_WARNING เตือนขณะบรรจุความผิดพลาด (ไม่เป็นความผิดพลาดอย่างเฉียบะหนัก)。คล้าย E_WARNING แต่ที่เกิดขึ้นโดย Zend และเครื่องกำเนิดสคริปต์
256 E_USER_ERROR ข้อความข้อผิดพลาดที่สร้างโดยผู้ใช้งาน。คล้าย E_ERROR แต่ที่เกิดขึ้นโดยผู้ใช้งานเองด้วยการใช้ฟังก์ชัน PHP trigger_error() ในรหัส
512 E_USER_WARNING ข้อความเตือนที่สร้างโดยผู้ใช้งาน。คล้าย E_WARNING แต่ที่เกิดขึ้นโดยผู้ใช้งานเองด้วยการใช้ฟังก์ชัน PHP trigger_error() ในรหัส
1024 E_USER_NOTICE ข้อความการแจ้งเตือนที่สร้างโดยผู้ใช้งาน。คล้าย E_NOTICE แต่ที่เกิดขึ้นโดยผู้ใช้งานเองด้วยการใช้ฟังก์ชัน PHP trigger_error() ในรหัส
2048 E_STRICT เปิดใช้งานคำแนะนำการแก้ไขรหัส PHP เพื่อให้รหัสมีความสามารถทำงานร่วมกันอย่างยอดเยี่ยมและความสามารถย้ายมาใช้ได้
4096 E_RECOVERABLE_ERROR ข้อผิดพลาดที่สามารถจับได้ มันหมายถึงข้อผิดพลาดที่อาจมีความเสี่ยงอย่างมาก แต่ยังไม่ได้ทำให้เครื่องยนตร์ PHP อยู่ในสถานะที่ไม่มั่นคง ถ้าข้อผิดพลาดนี้ไม่ถูกจับโดยฮังเกอร์ความผิดพลาดที่กำหนดโดยผู้ใช้งาน (ดู set_error_handler()) มันจะกลายเป็น E_ERROR และสคริปต์จะหยุดทำงาน
8192 E_DEPRECATED การแจ้งเตือนที่มีขึ้นในระหว่างการทำงาน หลังจากที่เปิดใช้งาน จะแจ้งเตือนสำหรับรหัสที่อาจจะไม่ทำงานตามปกติในสัปดาห์ต่อไป
16384 E_USER_DEPRECATED ข้อความเตือนที่สร้างโดยผู้ใช้งาน คล้ายกับ E_DEPRECATED แต่ถูกสร้างโดยผู้ใช้งานเองด้วยการใช้ฟังก์ชัน PHP trigger_error() ในรหัสของตนเอง
32767 E_ALL E_STRICT ทุกข้อผิดพลาดและข้อความเตือนเพื่อแนะนำ