PHP 捕捉錯誤,記錄到日誌

register_shutdown_function("shutdown");
define('ERR_LOG_FILE', '/dev/shm/php_log.txt');

if(defined('ERR_LOG_FILE')){
	ini_set("display_errors",0);//不在頁面顯示錯誤信息
	error_reporting(E_ALL ^ E_NOTICE);//記錄錯誤日誌的級別
	ini_set( "log_errors", "On" );//打開錯誤日誌
	ini_set( "error_log",  ERR_LOG_FILE);//設置保存錯誤日誌的地址
}
function shutdown(){	
	if(isset($GLOBALS['_pm'])){
		if(isset($GLOBALS['_pm']['mysql'])) $GLOBALS['_pm']['mysql']->close();				
		if(isset($GLOBALS['_pm']['mem'])) $GLOBALS['_pm']['mem']->memClose();
		$GLOBALS['_pm'] = NULL;

		if(defined('ERR_LOG_FILE')){
			$_error=error_get_last();
			if($_error && in_array($_error['type'],array(1,4,16,64,256,4096,E_ALL))){ 
				 $s = chr(10).'---------------------'.chr(10).date('Y/m/d H:i:s').' error:'.$_error['message'].chr(10);
				 $s .= 'File:'.$_error['file'].chr(10);
				 $s .= 'Line'.$_error['line'].chr(10);
				 file_put_contents(ERR_LOG_FILE, $s , FILE_APPEND);
			}
		}
	}
}
相關文章
相關標籤/搜索