php register_shutdown_function

测试环境下 开启日志错误和提示。

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');
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_34248023/article/details/87536854