下面thinkphp框架教程欄目將給大家介紹關(guān)于如何開(kāi)啟THINKPHP 調(diào)試模式及異常處理,希望對(duì)需要的朋友有所幫助!
調(diào)試模式
開(kāi)啟調(diào)試模式很簡(jiǎn)單,只需要在入口文件中增加一行常量定義代碼:
<?php // 開(kāi)啟調(diào)試模式 define('APP_DEBUG', true); // 定義應(yīng)用目錄 define('APP_PATH', './Application/'); // 加載框架入口文件 require './ThinkPHP/ThinkPHP.php';
測(cè)試時(shí),開(kāi)啟DEBUG調(diào)試模式, 開(kāi)發(fā)模式下,自動(dòng)生成緩存文件,測(cè)試時(shí)自動(dòng)調(diào)用緩存的文件,會(huì)出錯(cuò)
在完成開(kāi)發(fā)階段部署到生產(chǎn)環(huán)境后,只需要關(guān)閉調(diào)試模式或者刪除調(diào)試模式定義代碼即可切換到部署模式。
<?php // 關(guān)閉調(diào)試模式 define('APP_DEBUG', false); // 定義應(yīng)用目錄 define('APP_PATH', './Application/'); // 加載框架入口文件 require './ThinkPHP/ThinkPHP.php';
調(diào)試模式的優(yōu)勢(shì)在于:
- 開(kāi)啟日志記錄,任何錯(cuò)誤信息和調(diào)試信息都會(huì)詳細(xì)記錄,便于調(diào)試;
- 關(guān)閉模板緩存,模板修改可以即時(shí)生效;
- 記錄SQL日志,方便分析SQL;
- 關(guān)閉字段緩存,數(shù)據(jù)表字段修改不受緩存影響;
- 嚴(yán)格檢查文件大小寫(xiě)(即使是Windows平臺(tái)),幫助你提前發(fā)現(xiàn)Linux部署可能導(dǎo)致的隱患問(wèn)題;
- 通過(guò)頁(yè)面Trace功能更好的調(diào)試和發(fā)現(xiàn)錯(cuò)誤;
一旦關(guān)閉調(diào)試模式,發(fā)生錯(cuò)誤后不會(huì)提示具體的錯(cuò)誤信息,如果你仍然希望看到具體的錯(cuò)誤信息,那么可以如下設(shè)置:
'SHOW_ERROR_MSG' => true, // 顯示錯(cuò)誤信息
異常處理
調(diào)試模式下面一旦系統(tǒng)發(fā)生嚴(yán)重錯(cuò)誤會(huì)自動(dòng)拋出異常,也可以用ThinkPHP內(nèi)置的E方法手動(dòng)拋出異常。
E('新增失敗');
也可以支持異常代碼(默認(rèn)為0),例如:
E('信息錄入錯(cuò)誤',25);
通過(guò)設(shè)置TMPL_EXCEPTION_FILE配置參數(shù)來(lái)修改系統(tǒng)默認(rèn)的異常模板文件, 例如:
'TMPL_EXCEPTION_FILE' => APP_PATH.'/Public/exception.tpl'
異常模板中可以使用的異常變量有:
$e['file']異常文件名 $e['line'] 異常發(fā)生的文件行數(shù) $e['message'] 異常信息 $e['trace'] 異常的詳細(xì)Trace信息
拋出異常后通常會(huì)顯示具體的錯(cuò)誤信息,如果不想讓用戶看到具體的錯(cuò)誤信息,可以設(shè)置關(guān)閉錯(cuò)誤信息的顯示并設(shè)置統(tǒng)一的錯(cuò)誤提示信息,例如:
'SHOW_ERROR_MSG' => false, 'ERROR_MESSAGE' => '發(fā)生錯(cuò)誤
配置ERROR_PAGE參數(shù),把所有異常和錯(cuò)誤都指向一個(gè)統(tǒng)一頁(yè)面,從而避免讓用戶看到異常信息,通常在部署模式下面使用。ERROR_PAGE參數(shù)必須是一個(gè)完整的URL地址,例如:
'ERROR_PAGE' =>'/Public/error.html'
如果不在當(dāng)前域名,還可以指定域名:
'ERROR_PAGE' =>'http://www.myDomain.com/Public/error.html'
注意ERROR_PAGE所指向的頁(yè)面不能再使用異常的模板變量了。
日志記錄
默認(rèn)情況下只是在調(diào)試模式記錄日志,要在部署模式開(kāi)啟日志記錄,必須在配置中開(kāi)啟LOG_RECORD
參數(shù),以及可以在應(yīng)用配置文件中配置需要記錄的日志級(jí)別,例如:
'LOG_RECORD' => true, // 開(kāi)啟日志記錄 'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 只記錄EMERG ALERT CRIT ERR 錯(cuò)誤
日志級(jí)別
ThinkPHP對(duì)系統(tǒng)的日志按照級(jí)別來(lái)分類(lèi),包括:
- EMERG 嚴(yán)重錯(cuò)誤,導(dǎo)致系統(tǒng)崩潰無(wú)法使用
- ALERT 警戒性錯(cuò)誤, 必須被立即修改的錯(cuò)誤
- CRIT 臨界值錯(cuò)誤, 超過(guò)臨界值的錯(cuò)誤
- ERR 一般性錯(cuò)誤
- WARN 警告性錯(cuò)誤, 需要發(fā)出警告的錯(cuò)誤
- NOTICE 通知,程序可以運(yùn)行但是還不夠完美的錯(cuò)誤
- INFO 信息,程序輸出信息
- DEBUG 調(diào)試,用于調(diào)試信息
- SQL SQL語(yǔ)句,該級(jí)別只在調(diào)試模式開(kāi)啟時(shí)有效
記錄方式
日志的記錄方式默認(rèn)是文件方式,可以通過(guò)驅(qū)動(dòng)的方式來(lái)擴(kuò)展支持