錯(cuò)誤處理
在你的程序里使用以下的函數(shù),CodeIgniter將允許你建立自己的錯(cuò)誤報(bào)告。另外,他有一個(gè)錯(cuò)誤記錄類(lèi)能夠?qū)㈠e(cuò)誤和調(diào)試信息保存為文本文檔。
注意: 在默認(rèn)的情況下, CodeIgniter 會(huì)顯示所有的PHP錯(cuò)誤. 但是當(dāng)你開(kāi)發(fā)程序結(jié)束時(shí),你可能想要改變這個(gè)情況. 你會(huì)發(fā)現(xiàn)在index.php文件頂端有這個(gè)函數(shù)error_reporting(),通過(guò)它可以進(jìn)行對(duì)錯(cuò)誤的設(shè)置。 即使你關(guān)閉了錯(cuò)誤報(bào)告,當(dāng)有錯(cuò)誤發(fā)生時(shí),錯(cuò)誤記錄也不會(huì)停止。
不像大多數(shù)系統(tǒng), CodeIgniter的錯(cuò)誤報(bào)告函數(shù)是一個(gè)簡(jiǎn)單的程序接口,可以在整個(gè)應(yīng)用程序里使用。 不用考慮類(lèi)或者是函數(shù)的范圍,這種辦法可以直接觸發(fā)錯(cuò)誤通知。
可以使用以下函數(shù)來(lái)產(chǎn)生錯(cuò)誤消息:
show_error('消息' [, int $status_code = 500 ] [, string $heading = 'An Error Was Encountered'])
這個(gè)函數(shù)將會(huì)使用以下錯(cuò)誤模版來(lái)顯示錯(cuò)誤消息:
application/errors/error_general.php
可選參數(shù) $status_code 決定在顯示錯(cuò)誤的同時(shí)將會(huì)發(fā)送哪種 HTTP 狀態(tài)代碼。
可選參數(shù) $heading 決定錯(cuò)誤模版h1標(biāo)簽內(nèi)容。
show_404('頁(yè)面' [, 'log_error'])
這個(gè)函數(shù)將會(huì)使用以下錯(cuò)誤模版來(lái)顯示 404 錯(cuò)誤信息:
application/errors/error_404.php
傳遞給該函數(shù)的字符串代表的是找不到的文件路徑。注意CodeIgniter會(huì)在找不到目標(biāo)控制器情況下,自動(dòng)顯示404消息。
CodeIgniter自動(dòng)記錄任何 show_404() 函數(shù)調(diào)用。設(shè)置第二個(gè)可選的參數(shù)為FALSE將跳過(guò)記錄
log_message('級(jí)別', '消息')
這個(gè)函數(shù)可以讓你將消息寫(xiě)入記錄文件中。你必須在第一個(gè)參數(shù)中選擇三個(gè)“級(jí)別“中的任何一個(gè), 指明它是那一類(lèi)消息(調(diào)試 debug, 錯(cuò)誤 error, 信息info)。 第二個(gè)參數(shù)是消息本身。 例如:
if ($some_var == "")
{
????log_message('error', 'Some variable did not contain a value.');
}
else
{
????log_message('debug', 'Some variable was correctly set');
}
log_message('info', 'The purpose of some variable is to provide some value.');
有三種不同類(lèi)型的消息:
- 錯(cuò)誤類(lèi)型的消息。 這種是真正的錯(cuò)誤消息. 例如PHP錯(cuò)誤或者用戶錯(cuò)誤。
- 調(diào)試類(lèi)型的消息。 這種是用來(lái)幫助調(diào)試的消息。 例如, 如果當(dāng)一個(gè)類(lèi)被初始化時(shí),你可以將這個(gè)初始化紀(jì)錄下來(lái),然后用于調(diào)試。
- 信息類(lèi)型的消息。 這種是最低優(yōu)先級(jí)別的消息,它只是簡(jiǎn)單的提供了關(guān)于運(yùn)行的一些信息。 CodeIgniter 不會(huì)自動(dòng)產(chǎn)生任何信息類(lèi)型的消息,但是你可能會(huì)在你的程序里使用它
注意: 確保"logs" 文件夾是可寫(xiě)的,才能準(zhǔn)確地將消息寫(xiě)入記錄文件中。此外, 你必須設(shè)置application/config/config.php文件中的"threshold"設(shè)定,通過(guò)設(shè)置“threshold“,你可以只記錄錯(cuò)誤類(lèi)型的消息,而不用記錄其他兩種。如果你將“threshold“設(shè)為0,記錄就會(huì)被禁止。
?