测试环境下 开启日志错误和提示。
1.register_shutdown_function — 注册一个会在php中止时执行的函数
注册一个 callback
,它会在脚本执行完成或者 exit()后被调用。
if($environ != 'product'){
error_reporting(E_ALL); //2047
ini_set('display_errors',true);
register_shutdown_function(array('\Util\Help', 'shutdown'));
}
当代码报错exit()后或者程序执行完毕。按顺序执行注册的方法。
private static $_scriptErrorArr = array(
\E_ERROR => 'error',//1,致命的运行时错误
\E_PARSE => 'parse',//4,编译时语法解析错误
);
/**
* 日志记录
*/
public static function shutdown(){
$e = error_get_last();//记录程序最后报错的信息
if($e) {
if(isset(self::$_scriptErrorArr[$e['type']])) {
//错误标准头部,以便于后期搜索排查
$fatalHead = '500_FATAL';
$fatalHead .= ' ' . self::$_scriptErrorArr[$e['type']];
//记录500错误
$msg = $fatalHead . ',file:' . $e['file'] . ',line:' . $e['line'] . ',error:' . $e['message'];
Core::write($msg,Core::LEVEL_ERROR,'system');
}
}
}
网友评论