2011-03-03 67 views
0

我一直在使用PHP多年,從來沒有真正考慮過這一點。顯然有自定義格式顯示apache日誌,但有什麼可以通過php.ini php的error_log完成?是否可以在php error_log中記錄IP地址?

我想記錄原始錯誤的IP地址,而不必修改我的網站上每一個功能,包括error_log($_REQUEST['REMOTE_ADDR'].' error etc');

有沒有人見過這樣的事?

+0

您可以像使用'error_log()'函數一樣手動插入IP,但PHP中沒有任何選項可使內部生成的錯誤與IP一起記錄。並非所有的腳本都在網絡服務器下運行,所以IP地址將不可用。 – 2011-03-03 17:59:53

+3

如何執行日誌記錄的自定義錯誤處理程序? – 2011-03-03 18:02:46

+0

Pekka是正確的,使用您的自定義錯誤處理程序,您可以做任何你想做的事情:記錄REMOTE_ADDR,HTTP_USER_AGENT,REQUEST_URI,HTTP_REFERER,HTTP_X_FORWARDER_FOR等,將這些錯誤發送到您的電子郵件,重定向用戶和其他人。 – criticus 2011-03-03 18:08:57

回答

0

Apache應該記錄這個給你。

這裏是從錯誤日誌中的我的PHP網站一個例子:

[Thu Mar 03 06:32:29 2011] [error] [client 188.226.15.54] PHP Notice: Undefined variable: profileRow in /public/html/mysite/profile.php on line 22 

在我的httpd.conf文件中,我有以下的網站

ErrorLog /var/log/apache2/mysite.com.error.log 

假設你定義有正確的錯誤級別設置爲PHP,你應該在這裏看到你的錯誤。

+0

我打開了Apache的日誌,但它只是記錄Apache錯誤,而不是PHP錯誤。我正在查看php錯誤日誌文件,並且出現了很多錯誤,這些錯誤並未顯示在apache ErrorLog中 – Cary 2011-03-04 15:51:55

相關問題