- Timestamp:
- 2012/03/04 04:20:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/helper/SC_Helper_HandleError.php
r21527 r21582 25 25 * エラーハンドリングのクラス 26 26 * 27 * @package Page 27 * 依存するクラスに構文エラーがあると、捕捉できない。よって、依存は最小に留めること。 28 * 現状 GC_Utils_Ex(GC_Utils) に依存しているため、その中で構文エラーは捕捉できない。 29 * @package Helper 28 30 * @version $Id$ 29 31 */ … … 87 89 } 88 90 91 $error_type_name = GC_Utils_Ex::getErrorTypeName($errno); 92 89 93 $now = date('Y/m/d H:i:s'); 90 94 // 本来 realpath() で正規化したいところだが、NULL を返すケースがあるため避けている (#1618) … … 92 96 switch ($errno) { 93 97 case E_USER_ERROR: 94 $message = $now . " [$errfile:$errline] FATAL Error($errno) $errstr from ". $_SERVER['REMOTE_ADDR'] . "\n";95 error_log($message, 3, $log_file_path);96 97 self::displaySystemError($errstr);98 $message = "Fatal error($error_type_name): $errstr on [$errfile($errline)]"; 99 GC_Utils_Ex::gfPrintLog($message, ERROR_LOG_REALFILE, true); 100 101 SC_Helper_HandleError_Ex::displaySystemError($message); 98 102 exit(1); 99 103 break; … … 103 107 case E_CORE_WARNING: 104 108 case E_COMPILE_WARNING: 105 $message = $now . " [$errfile:$errline] WARNING($errno) $errstr from ". $_SERVER['REMOTE_ADDR'] . "\n";106 error_log($message, 3, $log_file_path);109 $message = "Warning($error_type_name): $errstr on [$errfile($errline)]"; 110 GC_Utils_Ex::gfPrintLog($message, ERROR_LOG_REALFILE); 107 111 return true; 108 112 … … 126 130 */ 127 131 static function &_fatal_error_handler(&$buffer) { 128 if (preg_match('/<b>(Fatal ) error<\/b>: +(.+) in <b>(.+)<\/b> on line <b>(\d+)<\/b><br \/>/i', $buffer, $matches)) {132 if (preg_match('/<b>(Fatal error)<\/b>: +(.+) in <b>(.+)<\/b> on line <b>(\d+)<\/b><br \/>/i', $buffer, $matches)) { 129 133 $now = date('Y/m/d H:i:s'); 130 // 本来 realpath() で正規化したいところだが、NULL を返すケースがあるため避けている (#1618)134 // realpath() で正規化したいが、NULL を返すケースがあるため避けている (#1618) 131 135 $log_file_path = DATA_REALDIR . 'logs/site.log'; 132 $message = $now . " [$matches[3]:$matches[4]] FATAL Error: $matches[2] from ". $_SERVER['REMOTE_ADDR'] . "\n";133 error_log($message, 3, $log_file_path);136 $message = "$matches[1]: $matches[2] on [$matches[3]($matches[4])]"; 137 GC_Utils_Ex::gfPrintLog($message, ERROR_LOG_REALFILE, true); 134 138 if (DEBUG_MODE !== true) { 135 139 $url = HTTP_URL . 'error.php'; 136 if (defined('ADMIN_FUNCTION') && ADMIN_FUNCTION ) {140 if (defined('ADMIN_FUNCTION') && ADMIN_FUNCTION === true) { 137 141 $url .= '?admin'; 138 142 } … … 174 178 } 175 179 176 $errstr = "[{$arrError[file]}:{$arrError[line]}] FATAL Error({$arrError[type]}) {$arrError[message]}"; 177 178 // ログの書き出し 179 $now = date('Y/m/d H:i:s'); 180 $error_type_name = GC_Utils_Ex::getErrorTypeName($arrError['type']); 181 $errstr = "Fatal error($error_type_name): {$arrError[message]} on [{$arrError[file]}({$arrError[line]})]"; 182 180 183 // 本来 realpath() で正規化したいところだが、NULL を返すケースがあるため避けている (#1618) 181 184 $log_file_path = DATA_REALDIR . 'logs/site.log'; 182 error_log($now . " $errstr from ". $_SERVER['REMOTE_ADDR'] . "\n", 3, $log_file_path);185 GC_Utils_Ex::gfPrintLog($errstr, ERROR_LOG_REALFILE, true); 183 186 184 187 // エラー画面を表示する 185 self::displaySystemError($errstr);188 SC_Helper_HandleError_Ex::displaySystemError($errstr); 186 189 } 187 190 … … 215 218 $objPage->init(); 216 219 if (isset($errstr)) { 217 $objPage->arrDebugMsg[] 218 = "▼▼▼ エラーメッセージ ▼▼▼\n" 219 . $errstr . "\n" 220 . "▲▲▲ エラーメッセージ ▲▲▲\n" 221 ; 220 $objPage->addDebugMsg($errstr); 222 221 } 223 222 $objPage->process();
Note: See TracChangeset
for help on using the changeset viewer.
