首先,謝謝大家一起思考。在考慮你的建議後,我決定修補CI的核心。不幸的是,核心類可以擴展,但不是核心本身。因此,如果您應用相同的修補程序,請務必記錄它。
在這裏。在系統\程序\ CONFIG \ config.php文件添加以下自定義配置設置正下方log_treshold設置:
/*
|--------------------------------------------------------------------------
| Error Logging Exclusions (custom config addition by Ferdy Christant)
|--------------------------------------------------------------------------
|
| By default, CI will log all PHP errors, whether it is a notice, warning
| or error. Or, by setting the above treshold to 0, it will log nothing
| In most cases, however, you will want to log PHP errors but not the notices
| In the array below, simply place the PHP error constant that you do NOT
| want to see logged.
|
| For a live site you'll usually use the config as follow:
|
| $config['exclude_logging'] = array(E_STRICT,E_NOTICE);
|
*/
$config['exclude_logging'] = array(E_STRICT,E_NOTICE);
如文檔說明,在此配置數組你把你做不是PHP的錯誤類型想要登錄。
接着,我已修補的核心文件(系統/笨/的common.php)和編輯_exception_handler
有兩個變化的功能。首先,讓我感動的配置負載線到方法的頂部,因爲我需要它更早。找到線下,你會看到$配置= & get_config();在它下面。刪除那個。
我刪除了//我們在錯誤日誌?沒有?我們完成了...
其次,修改嚴重性檢查以檢查我們聲明的數組。前往方法的頂部和下面替換if語句來檢查$嚴重性== E_STRICT:
$config =& get_config();
if (in_array($severity,$config['exclude_logging']))
{
return;
}
這些補丁允許在PHP錯誤日誌細粒度控制。正常的CI記錄當然仍然有效。如前所述,唯一的缺點就是這個補丁的核心。
我希望這可以幫助任何人。謝謝你一起思考!
順便說一句,請igno在錯誤報告功能中重複出現下劃線,這是StackOverflow的預覽面板中的一個問題。 – Ferdy 2009-12-18 15:47:48
我編輯了您的格式,以使用代碼塊而不是代碼塊引用。如果你願意,隨意回滾,但我認爲使用代碼塊和正確的文本更有意義。 – eyelidlessness 2009-12-18 18:05:42
謝謝你的眼皮,絕對是一種改進 – Ferdy 2009-12-18 18:12:32