2011-07-16 33 views
9

在開發Web應用程序時,在客戶端級別,我使用console.log和console.error來幫助我瞭解發生了什麼。我正在尋找服務器級別的類似功能來幫助我瞭解正在發生的事情。我已經看到error_log將錯誤寫入服務器的日誌文件,並想知道是否有寫入服務器訪問日誌的類似函數?console.log,用於PHP的console.error?

或者我正在討論這個錯誤的方式,我是否應該使用完全不同的東西來查看服務器端開發的背景中發生了什麼?

+2

你爲什麼要寫入訪問日誌,而不是錯誤日誌?訪問日誌會自動填充。 –

+0

對於客戶端開發,我顯示了console.log中使用的變量值。我想看看這樣的功能是否存在於PHP中,我可以很容易地看到變量值,這與我在客戶端開發中如何使用console.log相似。另外,error_log也會自動填充。 – nami

回答

9

這不是一回事,但您可能想調查一下PHP調試器XDebug

它具有一些非常強大的PHP調試功能。例如,您可以逐行瀏覽一個PHP程序,並觀察程序的位置以及在程序中的任何給定位置設置了哪些變量等。

它與IDE結合使用時效果最佳如NetBeans或Eclipse,因爲您可以使用相同的界面來調試程序,就像您用來編輯代碼一樣。

它還可以生成跟蹤文件,可以將其加載到名爲WinCacheGrind的程序中,該程序允許您在程序運行後跟蹤程序,以查看例如哪些函數使其運行緩慢。

1

我第二Spudley's answer有關使用了XDebug或在Zend調試器(類似的設置和操作的XDebug)的選項。但是,要直接回答您的問題,您可以結合使用trigger_errorE_USER_WARNINGE_USER_NOTICE以及適當的error_reporting級別。您也可以使用syslog,因爲ssapkota暗示。

12

這爲我工作:http://www.paulund.co.uk/output-php-data-in-browser-console

/** 
* Send debug code to the Javascript console 
*/ 
function debug_to_console($data) { 
    if(is_array($data) || is_object($data)) { 
    echo("<script>console.log('PHP: ".json_encode($data)."');</script>"); 
    } else { 
    echo("<script>console.log('PHP: $data');</script>"); 
    } 
}