PHP Error ºÍ Logging º¯Êý

PHP Error ¼ò½é

Error ºÍ Logging º¯ÊýÔÊÐíÄú¶Ô´íÎó½øÐд¦ÀíºÍ¼Ç¼¡£

Error º¯ÊýÔÊÐíÓû§¶¨Òå´íÎó´¦Àí¹æÔò£¬²¢Ð޸ļǼ´íÎóµÄ·½Ê½¡£

Logging º¯ÊýÔÊÐíÓû§¶ÔÓ¦ÓóÌÐò½øÐÐÈÕÖ¾¼Ç¼£¬²¢°ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½µç×ÓÓʼþ¡¢ÏµÍ³ÈÕÖ¾»òÆäËûµÄ»úÆ÷¡£

error º¯ÊýÓÃÓÚÍê³É´íÎó´¦ÀíºÍÈÕÖ¾¼Ç¼¡£

error º¯ÊýÔÊÐíÎÒÃǶ¨Òå×Ô¼ºµÄ´íÎó´¦Àí¹æÔò£¬²¢Ð޸ĴíÎó¼Ç¼·½Ê½¡£

logging º¯ÊýÔÊÐíÎÒÃǽ«ÏûÏ¢Ö±½Ó·¢Ë͵½ÆäËû»úÆ÷¡¢µçÓÊ»òϵͳÈÕÖ¾¡£

error reporting º¯ÊýÔÊÐíÎÒÃÇ´íÎóµÄÀàÐͺͲ㼶¡£

°²×°

PHP error º¯ÊýÊÇ PHP ºËÐĵÄÒ»²¿·Ö¡£ÎÞÐè°²×°¼´¿ÉʹÓÃÕâЩº¯Êý¡£

Runtime ÅäÖÃ

error º¯ÊýµÄÐÐΪÊܵ½ php.ini ÖÐÉèÖõÄÓ°Ïì¡£

Errors ºÍ logging ÅäÖÃÑ¡ÏîÈçÏ£º

Ãû³Æ ĬÈÏÖµ ÃèÊö ¿ÉÐ޸ķ¶Î§
error_reporting NULL ÉèÖôíÎ󱨸漶±ð£¨ÕûÊý»òÃüÃû³£Á¿£© PHP_INI_ALL
display_errors "1"

¹æ¶¨ÊÇ·ñ½«´íÎó×÷ΪÊä³öÊä³öµ½ÆÁÄ»£¬»òÕß¶ÔÓû§Òþ²Ø¡£

×¢Ò⣺¸ÃÌØÐÔ²»Ó¦ÔÚÉú²úϵͳÉÏʹÓ㨽öÖ§³Ö¿ª·¢£©

PHP_INI_ALL
display_startup_errors "0"

¼´Ê¹ display_errors ÉèÖÃΪ¿ªÆô, PHP Æô¶¯¹ý³ÌÖеĴíÎóÐÅÏ¢Ò²²»»á±»ÏÔʾ¡£

×¢ÊÍ£ºÇ¿ÁÒ½¨Òé³ýÁ˵÷ÊÔÄ¿µÄÒÔÍ⣬½« display_startup_errors ÉèÖÃΪ¹Ø±Õ¡£

PHP_INI_ALL
log_errors "0"

ÉèÖÃÊÇ·ñ½«½Å±¾ÔËÐеĴíÎóÐÅÏ¢¼Ç¼µ½·þÎñÆ÷´íÎóÈÕÖ¾»òÕß error_log Ö®ÖС£

×¢ÊÍ£ºÕâÊÇÓë·þÎñÆ÷Ïà¹ØµÄÌØ¶¨ÅäÖÃÏî¡£

×¢ÊÍ£ºÔÚÉú²úϵͳÖУ¬Ç¿ÁÒ½¨ÒéÄãʹÓôíÎóÈÕÖ¾¼Ç¼webÕ¾µãÉÏÏÔʾµÄ´íÎóÐÅÏ¢¡£

PHP_INI_ALL
log_errors_max_len "1024"

ÉèÖà log_errors µÄ×î´ó×Ö½ÚÊý¡£ÔÚ error_log »áÌí¼ÓÓйشíÎóÔ´µÄÐÅÏ¢¡£

ĬÈÏֵΪ 1024£¬Èç¹ûÉèÖÃΪ 0 ±íʾ²»ÏÞ³¤¶È¡£

¸Ã³¤¶ÈÉèÖöԼǼµÄ´íÎó£¬ÏÔʾµÄ´íÎó£¬ÒÔ¼° $php_errormsg ¶¼»áÓÐÏÞÖÆ×÷Óá£

PHP_INI_ALL
ignore_repeated_errors "0"

¹æ¶¨ÊÇ·ñ¼ÇÂ¼ÖØ¸´µÄ´íÎóÐÅÏ¢¡£

ÖØ¸´µÄ´íÎó±ØÐë³öÏÖÔÚͬһ¸öÎļþÖеÄͬһÐдúÂëÉÏ£¬³ý·Ç ignore_repeated_source ÉèÖÃΪ true¡£

PHP_INI_ALL
ignore_repeated_source "0"

¹æ¶¨ÊÇ·ñ¼ÇÂ¼ÖØ¸´µÄ´íÎóÐÅÏ¢¡£ºöÂÔÖØ¸´ÏûϢʱ£¬Ò²ºöÂÔÏûÏ¢µÄÀ´Ô´¡£

µ±¸ÃÉèÖÿªÆôʱ£¬Öظ´ÐÅÏ¢½«²»»á¼Ç¼ËüÊÇÓɲ»Í¬µÄÎļþ»¹ÊDz»Í¬µÄÔ´´úÂëÐвúÉúµÄ¡£

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 ÒýÇæºËÐIJúÉúµÄ¡£
32 E_CORE_WARNING PHP ³õʼ»¯Æô¶¯¹ý³ÌÖз¢ÉúµÄ¾¯¸æ (·ÇÖÂÃü´íÎó) ¡£ÀàËÆ E_WARNING£¬µ«ÊÇÊÇÓÉ PHP ÒýÇæºËÐIJúÉúµÄ¡£
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 ¿É±»²¶×½µÄÖÂÃü´íÎó¡£Ëü±íʾ·¢ÉúÁËÒ»¸ö¿ÉÄܷdz£Î£ÏյĴíÎ󣬵«ÊÇ»¹Ã»Óе¼Ö PHP ÒýÇæ´¦ÓÚ²»Îȶ¨µÄ״̬¡£ Èç¹û¸Ã´íÎóûÓб»Óû§×Ô¶¨Òå¾ä±ú²¶»ñ (²Î¼û set_error_handler())£¬½«³ÉΪһ¸ö E_ERROR ´Ó¶ø½Å±¾»áÖÕÖ¹ÔËÐС£
8192 E_DEPRECATED ÔËÐÐʱ֪ͨ¡£ÆôÓú󽫻á¶ÔÔÚδÀ´°æ±¾ÖпÉÄÜÎÞ·¨Õý³£¹¤×÷µÄ´úÂë¸ø³ö¾¯¸æ¡£
16384 E_USER_DEPRECATED Óû§²úÉúµÄ¾¯¸æÐÅÏ¢¡£ÀàËÆ E_DEPRECATED, µ«ÊÇÊÇÓÉÓû§×Ô¼ºÔÚ´úÂëÖÐʹÓà PHP º¯Êý trigger_error() À´²úÉúµÄ¡£
32767 E_ALL E_STRICT ³ý·ÇµÄËùÓдíÎóºÍ¾¯¸æÐÅÏ¢¡£
VUE