我一直在使用PHP多年,從來沒有真正考慮過這一點。顯然有自定義格式顯示apache日誌,但有什麼可以通過php.ini php的error_log完成?是否可以在php error_log中記錄IP地址?
我想記錄原始錯誤的IP地址,而不必修改我的網站上每一個功能,包括error_log($_REQUEST['REMOTE_ADDR'].' error etc');
有沒有人見過這樣的事?
我一直在使用PHP多年,從來沒有真正考慮過這一點。顯然有自定義格式顯示apache日誌,但有什麼可以通過php.ini php的error_log完成?是否可以在php error_log中記錄IP地址?
我想記錄原始錯誤的IP地址,而不必修改我的網站上每一個功能,包括error_log($_REQUEST['REMOTE_ADDR'].' error etc');
有沒有人見過這樣的事?
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,你應該在這裏看到你的錯誤。
我打開了Apache的日誌,但它只是記錄Apache錯誤,而不是PHP錯誤。我正在查看php錯誤日誌文件,並且出現了很多錯誤,這些錯誤並未顯示在apache ErrorLog中 – Cary 2011-03-04 15:51:55
您可以像使用'error_log()'函數一樣手動插入IP,但PHP中沒有任何選項可使內部生成的錯誤與IP一起記錄。並非所有的腳本都在網絡服務器下運行,所以IP地址將不可用。 – 2011-03-03 17:59:53
如何執行日誌記錄的自定義錯誤處理程序? – 2011-03-03 18:02:46
Pekka是正確的,使用您的自定義錯誤處理程序,您可以做任何你想做的事情:記錄REMOTE_ADDR,HTTP_USER_AGENT,REQUEST_URI,HTTP_REFERER,HTTP_X_FORWARDER_FOR等,將這些錯誤發送到您的電子郵件,重定向用戶和其他人。 – criticus 2011-03-03 18:08:57