0
我有一個腳本,每天在服務器上運行,從沒有HTML輸出的資源下載數據。默認情況下,PHP會將我的腳本錯誤輸出到php_error.log
以及NetBeans中的輸出窗口。PHP自定義錯誤處理程序日誌輸出
我創建了一個用戶錯誤處理程序:
// user defined error handling function
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
error_log($errmsg, 3, "logs/aem.log");
switch ($errno) {
case E_ERROR:
exit("Error grave $errmsg at $filename:$linenum");
break;
case E_USER_ERROR:
exit("Error grave $errmsg at $filename:$linenum");
break;
}
}
error_reporting(0);
set_error_handler('userErrorHandler');
我包括我的主要腳本文件和一切順利。
在開發應用程序時,我想繼續在Netbeans的輸出屏幕上看到錯誤消息,並保留錯誤日誌文件(作爲默認處理程序)。我試圖改變的error_reporting
值或者添加額外的error_log功能嘗試以下值:
error_reporting(E_ALL | E_STRICT);
error_reporting(-1);
error_log($errmsg, 0);`
但除非我從文件中刪除include('mycustomhandler');
我從來沒有得到輸出上的錯誤。
如何模擬標準錯誤處理程序的行爲?
不錯的想法。我不會使用syslog,因爲使用我的自定義處理程序的主要思想是能夠登錄到特定於該應用程序的文件。 'fprintf()'也打印到Netbeans輸出,所以我可以將它添加到處理程序。 – 2012-02-09 20:30:41
@DavidCasillas讓netbeans解析STDERR的輸出,很好的確定。這些只是想法,我希望至少有一些幫助:)。 – Vyktor 2012-02-09 20:35:28