电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP擴展之錯誤處理和日志記錄

瀏覽:24日期:2022-09-15 14:58:34
簡介

PHP提供了錯誤處理和日志記錄的功能. 這些函數允許你定義自己的錯誤處理規則,以及修改錯誤記錄的方式. 這樣,你就可以根據自己的需要,來更改和加強錯誤輸出信息以滿足實際需要.

通過日志記錄功能,你可以將信息直接發送到其他日志服務器,或者發送到指定的電子郵箱(或者通過郵件網關發送),或者發送到操作系統日志等,從而可以有選擇的記錄和監視你的應用程序和網站的最重要的部分。

錯誤報告功能允許你自定義錯誤反饋的級別和類型,可以是簡單的提示信息或者使用自定義的函數進行處理并返回信息.

范例

下面我們可以看到錯誤處理功能在 PHP 中的使用的示例。 我們定義錯誤處理函數,記錄錯誤信息到一個文件中 (使用以 XML 格式) ,并在發生嚴重邏輯錯誤時,給開發人員發送電子郵件。

Example #1 在腳本中使用錯誤句柄

<?php // 我們將要定義自己的錯誤處理 error_reporting(0); // 用戶自定義錯誤處理函數 function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars) {// 錯誤發生的時間$dt = date('Y-m-d H:i:s (T)');// 定義錯誤字符串的關聯數組// 在這里我們只考慮// E_WARNING, E_NOTICE, E_USER_ERROR,// E_USER_WARNING 和 E_USER_NOTICE$errortype = array ( E_ERROR => ’Error’, E_WARNING => ’Warning’, E_PARSE => ’Parsing Error’, E_NOTICE => ’Notice’, E_CORE_ERROR => ’Core Error’, E_CORE_WARNING => ’Core Warning’, E_COMPILE_ERROR => ’Compile Error’, E_COMPILE_WARNING => ’Compile Warning’, E_USER_ERROR => ’User Error’, E_USER_WARNING => ’User Warning’, E_USER_NOTICE => ’User Notice’, E_STRICT => ’Runtime Notice’, E_RECOVERABLE_ERROR => ’Catchable Fatal Error’);// 設置要保存變量跟蹤信息的錯誤類別$user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);$err = '<errorentry>n';$err .= 't<datetime>' . $dt . '</datetime>n';$err .= 't<errornum>' . $errno . '</errornum>n';$err .= 't<errortype>' . $errortype[$errno] . '</errortype>n';$err .= 't<errormsg>' . $errmsg . '</errormsg>n';$err .= 't<scriptname>' . $filename . '</scriptname>n';$err .= 't<scriptlinenum>' . $linenum . '</scriptlinenum>n';if (in_array($errno, $user_errors)) { $err .= 't<vartrace>' . wddx_serialize_value($vars, 'Variables') . '</vartrace>n';}$err .= '</errorentry>nn';// for testing// echo $err;// 記錄錯誤信息到錯誤日志,并在發生關鍵用戶錯誤時發送電子郵件error_log($err, 3, '/usr/local/php4/error.log');if ($errno == E_USER_ERROR) { mail('phpdev@example.com', 'Critical User Error', $err);} } function distance($vect1, $vect2) {if (!is_array($vect1) || !is_array($vect2)) { trigger_error('Incorrect parameters, arrays expected', E_USER_ERROR); return NULL;}if (count($vect1) != count($vect2)) { trigger_error('Vectors need to be of the same size', E_USER_ERROR); return NULL;}for ($i=0; $i<count($vect1); $i++) { $c1 = $vect1[$i]; $c2 = $vect2[$i]; $d = 0.0; if (!is_numeric($c1)) {trigger_error('Coordinate $i in vector 1 is not a number, using zero',E_USER_WARNING);$c1 = 0.0; } if (!is_numeric($c2)) {trigger_error('Coordinate $i in vector 2 is not a number, using zero',E_USER_WARNING);$c2 = 0.0; } $d += $c2*$c2 - $c1*$c1;}return sqrt($d); } $old_error_handler = set_error_handler('userErrorHandler'); // 未定義的常量,將產生一個警告 $t = I_AM_NOT_DEFINED; // 定義一些 '載體' $a = array(2, 3, 'foo'); $b = array(5.5, 4.3, -1.6); $c = array(1, -3); // 引發一個用戶錯誤 $t1 = distance($c, $b) . 'n'; // 再次引發一個用戶錯誤 $t2 = distance($b, 'i am not an array') . 'n'; // 引發一個警告 $t3 = distance($a, $b) . 'n';?> 錯誤處理函數debug_backtrace — 產生一條回溯跟蹤(backtrace)debug_print_backtrace — 打印一條回溯。error_get_last — 獲取最后發生的錯誤error_log — 發送錯誤信息到某個地方error_reporting — 設置應該報告何種 PHP 錯誤restore_error_handler — 還原之前的錯誤處理函數restore_exception_handler — 恢復之前定義過的異常處理函數。set_error_handler — 設置一個用戶定義的錯誤處理函數set_exception_handler — 設置一個用戶定義的異常處理函數。trigger_error — 產生一個用戶級別的 error/warning/notice 信息user_error — trigger_error 的別名

標簽: PHP
相關文章:
主站蜘蛛池模板: 深圳市万色印象美业有限公司| 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 金刚网,金刚网窗纱,不锈钢网,金刚网厂家- 河北萨邦丝网制品有限公司 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 丙烷/液氧/液氮气化器,丙烷/液氧/液氮汽化器-无锡舍勒能源科技有限公司 | 一点车讯-汽车网站,每天一点最新车讯!| 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 电竞学校_电子竞技培训学校学院-梦竞未来电竞学校官网 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 阜阳在线-阜阳综合门户| 三板富 | 专注于新三板的第一垂直服务平台 | 天命文免费算命堂_自助算命_自由算命系统_长文周易 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 球磨机 选矿球磨机 棒磨机 浮选机 分级机 选矿设备厂家 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | Q361F全焊接球阀,200X减压稳压阀,ZJHP气动单座调节阀-上海戎钛 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 瓶盖扭矩仪(扭力值检测)-百科 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 |