錯誤處理
CodeIgniter讓你使用下列的函數來在你的應用程式中建立錯誤報告。此外,它還有一個logging類別來讓錯誤以及除錯訊息可以存成文字檔。
注意:CodeIgniter預設會顯示所有PHP錯誤訊息。你可能會希望在開發過程完畢後改變這個行為。你可以在主要的 index.php 檔案的開頭找到 error_reporting() 這個函數。即使取消錯誤報告,錯誤仍然會寫入log檔。
不像大部分CodeIgniter的系統,錯誤處理函數只是在整個系統中都可以直接呼叫的程序式函數介面。這個方式讓你觸發錯誤訊息時不必擔心類別/函數的有效範圍。
以下的函數讓你產生錯誤訊息:
show_error('message')
這個函數讓你用下列的錯誤訊息模板來顯示給予的錯誤訊息:
application/errors/error_general.php
show_404('page' [, 'log_error'])
這個函數會使用下列的錯誤訊息模板來顯示給予的404錯誤訊息。
application/errors/error_404.php
這個函數預期你傳給它的字串是所找不到的檔案路徑。注意,CodeIgniter會在找不到控制器(controller)時自動顯示404訊息。
呼叫使用 show_404() 函式,CodeIgniter 會自動幫忙寫入 log 檔案,可以設定第二個參數為 False 來略過紀錄。
log_message('level','message')
這個函數讓你把訊息寫入你的log檔。你必須提供三個層級(levels)之一作為第一個參數,以指示這是哪一種訊息(除錯 debug、錯誤 error、通知 info),然後將訊息本身當作第二個參數。參考範例:
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.');
三種訊息類型:
- 錯誤(Error)訊息。這是實際發生的錯誤,例如PHP產生的錯誤或是使用者的錯誤。
- 除錯(Debug)訊息。這是協助除錯用的訊息。例如,假如一個類別已被初始化,你可以把它當作除錯資訊log起來。
- 通知(Informational)訊息。這是低優先性的訊息,只是提供相關處理的資訊。CodeIgniter本身並不產生任何這方面的資訊,但是你可能希望在應用程式中使用這類的訊息。
注意: 為了能確實寫入log檔,"logs"目錄必須是可寫入的。此外,你必須在 application/config/config.php 設定寫入log的門檻(threshold)。例如,你可能只需要紀錄錯誤訊息,而非其他兩種訊息。如果你設為0,log動作會被取消。