日志: 级别: EMERG:严重错误,导致系统崩溃无法使用; ALERT:警戒性错误, 必须被立即修改的错误; CRIT:临界值错误, 超过临界值的错误: ERR:一般性错误; WARN:警告性错误, 需要发出警告的错误; NOTICE:通知,程序可以运行但是还不够完美的错误; INFO:信息,程序输出信息; DEBUG:调试,用于调试信息; SQL:SQL语句,该级别只在调试模式开启时有效; 配置: LOG_RECORD=>TRUE:开起日志记录; LOG_LEVEL=>EMERG,ALERT,CRIT,ERR:所要记录的日志级别; LOG_FILE_SIZE:限制日志文件的大小。超出限定大小的文件会形成备份文件; LOG_DEST:设置日志发送的邮箱; LOG_EXTRA:设置邮件的发送人; 记录方式: SYSTEM:日志发送到PHP的系统日志记录,常量标识:0; MAIL:日志通过邮件方式发送,常量标识:1; FILE:日志通过文件方式记录,为默认方式,常量标识:2; SAPI:日志通过SAPI方式记录,常量标识:4; 记录格式:记录时间 访问URL|日志级别:日志信息。其中的时间格式可以动态配置:Log::$format=[Y-m-d H:i:s],默认使用[c]; 手动记录: Log::write($message,$level=self::ERR,$type='',$destination='',$extra=''); message(必须):要记录的日志信息,字符串; level(可选):要记录的日志级别,默认为ERR 错误; type(可选):日志记录方式,默认为空取LOG_TYPE配置; destination(可选):日志记录目标,默认为空自动生成或LOG_DEST配置; extra(可选):日志记录额外参数,默认为空取LOG_EXTRA配置; Log::record($message,$level=self::ERR,$record=false); message(必须):要记录的日志信息,字符串 level(可选):要记录的日志级别,默认为ERR 错误 record(可选):是否强制记录,默认为false表示判断LOG_LEVEL配置 Log::save($type='',$destination='',$extra=''); type(可选):日志记录方式,默认为空取LOG_TYPE配置; destination(可选):日志记录目标,默认为空自动生成或LOG_DEST配置; extra(可选):日志记录额外参数,默认为空取LOG_EXTRA配置; Log::record方法必须结合Log::save方法才能完成日志记录,因为record方法只是把日志信息保存到内存,并没有真正写入日志,直到调用Log::save方法;
异常: 出现异常:调试模式下系统发生错误,也可以使用ThinkPHP定义的throw_exception()抛出异常; throw_exception($msg, $type='ThinkException', $code=0); msg(必须):要抛出的异常信息,字符串 type(可选):异常类型,默认为ThinkException,如果异常类型不存在,则会调用系统的halt方法直接输出错误信息。 code(可选):异常代码,默认为0 或:throw new ThinkException();throw new InfoException(); 异常模版: 系统内置的异常模版在ThinkPHP/Tpl/think_exception.tpl,可以通过修改系统模版来修改异常显示界面; EXCEPTION_TMPL_FILE:修改系统默认的异常模版文件; 异常模版使用的的异常变量: $e['file']:异常文件名; $e['line']:异常所在的行; $e['message']:异常信息; $e['trace']:异常的详细Trace信息; 异常显示: SHOW_ERROR_MSG=>FALSE:关闭错误信息显示; ERROR_MESSAGE=>MSG:设置统一的异常显示; ERROR_PAGE=>URL:设置统一的异常显示页面;
调试: 显示运行状态包括运行时间,内存开销,数据库和缓存读写次数的详细运行数据等,具体配置如下: 'SHOW_RUN_TIME'=>true, // 运行时间显示 'SHOW_ADV_TIME'=>true, // 显示详细的运行时间 'SHOW_DB_TIMES'=>true, // 显示数据库查询和写入次数 'SHOW_CACHE_TIMES'=>true, // 显示缓存操作次数 'SHOW_USE_MEM'=>true, // 显示内存开销 'SHOW_LOAD_FILE' =>true, // 显示加载文件数 'SHOW_FUN_TIMES'=>true , // 显示函数调用次数 默认的情况下,运行时间的显示是在Html页面的最后,如果需要在制定位置显示,只需要在Html模板文件中相关位置加上 {__RUNTIME__} 即可,系统在输出页面的时候会自动在该位置替换运行时间的信息显示; 页面Trace: Trace包括:请求时间,当前页面,请求协议,运行信息,会话ID,日志记录和文件加载情况; SHOW_PAGE_TRACE=>TRUE:设置显示Trace信息。无论调试模式和部署模式都有效; TMPL_TRACE_FILE=>URL:定制Trac页面。其页面内容可以: $_trace=trace(); foreach($_trace as $key => $info){ echo $key.':'.$info.'<br/>'; } 定制Trace信息: 目录:App/Con/trace.php; 返回值:return array( '当前页面'=>$_SERVER['PHP_SELF'], '通信协议'=>$_SERVER['SERVER_PROTOCOL'], ..........//其他信息 ); Action方法中使用trace()增加Trace信息: trace('执行时间',$runTime); trace('Name的值',$name); trace('GET变量',dump($_GET,false)); trace方法支持批量设置,例如: $info['执行时间']=$runTime; $info['Name的值'] = $name; $info['GET变量']=dump($_GET,false); trace($info); 这种方式的trace信息显示在页面Trace信息的最开始。 |