我一直在使用set_error_handler來覆蓋默認的PHP錯誤處理,唯一的目的是自定義錯誤日誌記錄。但我得出的結論是,人們無法自定義錯誤日誌並記錄所有可能的錯誤。是否自定義PHP日誌記錄和記錄所有可能的錯誤互斥?
1)可以使用的set_error_han dler() - 但此功能,引自PHP手冊: E_ERROR,E_PARSE,E_CORE_ERROR, E_CORE_WARNING:
以下錯誤類型不能 與用戶定義的函數來處理,E_COMPILE_ERROR, E_COMPILE_WARNING,最 E_STRICT
這樣的 - 通過走這條路 - 您的自定義日誌將不會有記錄這些錯誤?
2)第二種方法是使用register_shutdown_function()
,然後運行error_get_last()
得到錯誤...但是 - error_get_last()
...僅獲取最後一個錯誤......雖然你可能有腳本執行期間多次警告和注意事項 - 這種方法只會允許您記錄最近的錯誤,通知,警告 - 對嗎?
所以 - 恕我直言 - 我沒有看到任何解決方法。看起來像是想要擁有最完整的錯誤日誌 - 應該堅持默認的PHP記錄器 - 對吧?
「自定義錯誤記錄」是什麼意思?只是不同的日誌格式/地點或一些更多的邏輯取決於它? – Laimoncijus 2011-04-12 19:59:03
好。我打算將它們保存到數據庫中。但我還沒有到那個地步。 – Stann 2011-04-12 20:13:51