使用日志
- 框架配置preloaded加入"of_base_error_writeLog"启动
- 开发模式时, 产生错误会有明显的提示
- 生产模式时, 加$_REQUEST['__of_DEBUG__']参数强制显示错误,如 /index.php?c=xx&__OF_DEBUG__
- 访问 框架目录(如:/include/of)/index.php?c=of_base_error_tool 来查阅以往错误的详细信息
- 修改框架配置 _of.error.xxx = false 禁用对应日志的记录
- 在SQL死锁时, 会尝试使用 PROCESS 权限, 读取死锁日志
- 调用 of::event('of::error', true, 异常对象或错误数组) 来自定异常或错误

自定错误
-
of::event('of::error', true, 异常对象或错误数组)自定义错误或异常
cleanbooltrue=清除错误信息, false=读取错误信息<?php /** * 默认框架会记录产生的错误及异常 */ trigger_error("A custom error has been triggered"); throw new Exception("Value must be 1 or below"); /** * 主动记录异常日志并不会影响后代码执行 */ try { throw new Exception("Demo exception"); //抛出异常 } catch (Exception $e) { of::event('of::error', true, $e); //记录错误 } /** * 自定义错误结构 : { * "memo" : 作备忘录, 默认 false=正常抛出错误, true=不算错误仅存日志, str=指定备忘类型 * "type" : 错误类型, 字符串类型, 不与"memo"同用 * "code" : 错误代码, 默认 E_USER_NOTICE * "info" : 错误描述, 默认 "Unknown error" * "file" : 文件路径, 默认 代码触发文件 * "line" : 错误行数, 默认 代码触发行数 * } */ of::event('of::error', true, array( 'memo' => '__DEBUG__', 'code' => E_USER_WARNING, 'info' => 'Debug error', 'file' => __FILE__, 'line' => __LINE__ ));
内置方法
-
of::work('error', $read = true);获取最后一次基本错误信息
readbooltrue=读取错误信息, false=清除错误信息<?php /** * of_base_error_writeLog未启动也可以使用 详见of::work * } */ of::work('error'); //读取错误, 无错误为 null, 有错误返回 { "code" : 编码, "info" : 错误, "file" : 路径, "line" : 行数, ... } of::work('error', false); //清除错误
-
of_base_error_writeLog::lastError($clean = false)获取最后一次详细错误信息
cleanbooltrue=清除错误信息, false=读取错误信息<?php of_base_error_writeLog::lastError(false); //读取错误, 无错误为 null, 结构为 { 'logType' : 错误类型, 'environment' : { 'code' : 错误码, 'info' : 错误信息, 'file' : 错误文件, 'line' : 错误行数, 'backtrace' : 错误回溯 {} } } of_base_error_writeLog::lastError(true); //清除错误
错误回调
-
of_base_error_writeLog::error发生错误时触发
<?php /** * 回调函数接收的参数($params) { * "type" :&错误来源, 其中一个(js, php, sql) * "data" :&错误信息 { * 'errorType' : 错误类型(sqlError, exception, error) * 'environment' : 错误体,包括环境,错误细节,回溯 { * 'type' : php=错误级别, sql=错误码及说明 * 'info' : php=错误描述, sql=错误sql * 'file' : 定位->路径 * 'line' : 定位->行数 * 'envVar' : 环境变量 { * '_GET' : 对应超全局变量 * '_POST' : 对应超全局变量 * '_COOKIE' : 对应超全局变量 * '_SESSION' : 对应超全局变量 * '_SERVER' : 对应超全局变量 * '_REQUEST' : 对应超全局变量 * 'iStream' : 原始请求输入流 * } * 'backtrace' : 回溯信息,js没有 {} * } * 'time' : 生成时间戳 * } * } */ function errorCallback($params) { print_r($params); //返回true时, 框架不记录日志 return true; } of::event('of_base_error_writeLog::error', 'errorCallback');