我想在PHP CodeIgniter中進行錯誤日誌記錄。我如何啓用錯誤日誌記錄?如何在CodeIgniter(PHP)中執行錯誤日誌記錄
我有一些問題:
- 什麼都記錄一個錯誤的步驟?
- 如何創建錯誤日誌文件?
- 如何將錯誤消息推送到日誌文件(每當發生錯誤時)?
- 如何通過電子郵件將錯誤發送至電子郵件地址?
我想在PHP CodeIgniter中進行錯誤日誌記錄。我如何啓用錯誤日誌記錄?如何在CodeIgniter(PHP)中執行錯誤日誌記錄
我有一些問題:
要簡單地在服務器的錯誤日誌中放一行,使用PHP的error_log()函數。但是,該方法不會發送電子郵件。
首先,觸發一個錯誤:
trigger_error("Error message here", E_USER_ERROR);
默認情況下,這會在服務器的錯誤日誌文件。請參閱Apache的ErrorLog directive。要設置自己的日誌文件:
ini_set('error_log', 'path/to/log/file');
請注意,您選擇的日誌文件必須已經存在,並且由服務器進程可寫。使文件可寫的最簡單方法是使服務器用戶成爲文件的所有者。 (該服務器用戶可能沒有人,_www,阿帕奇,還是別的什麼,這取決於你的操作系統分發)
以電子郵件的錯誤,你需要建立一個自定義錯誤處理程序:
function mail_error($errno, $errstr, $errfile, $errline) {
$message = "[Error $errno] $errstr - Error on line $errline in file $errfile";
error_log($message); // writes the error to the log file
mail('[email protected]', 'I have an error', $message);
}
set_error_handler('mail_error', E_ALL^E_NOTICE);
欲知更多信息,請參閱relevant PHP documentation。
無價。感謝你的分享。 – kta 2017-04-29 03:37:28
還要確保您已允許笨登錄您在配置文件中想要的消息類型。
即$config['log_threshold'] = [log_level ranges 0-4];
更多OIN的問候質疑部分4你如何通過電子郵件發送一個錯誤的電子郵件地址? error_log函數也有電子郵件目的地。 http://php.net/manual/en/function.error-log.php
Agha,在這裏我找到了一個顯示使用情況的例子。 Send errors message via email using error_log()
error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);
現在的鏈接是[http://ellislab.com/codeigniter/user-guide/general/errors.html](http://ellislab.com/codeigniter/user-guide/general/errors.html) – machineaddict 2013-05-15 09:15:59
Are there對此有任何安全影響? – 2014-08-12 01:51:42
這會將數據轉儲到一個php文件,其文件名格式爲:log- [Y-m-d H:i:s]或在配置文件中定義的log_date_format密鑰配置上設置的任何值。只要你不記錄/轉儲敏感數據,它應該是非常安全的。這個文件默認是相對於index.html頁面的,所以顯然生成的php文件不會公開訪問 - 但是你永遠不會知道。如果您更改默認的應用程序/日誌目錄,請務必採取所有這些預防措施。 – 2015-01-29 02:56:46