PHP 錯誤可以寫入資料庫而不是錯誤日誌檔案嗎?
PHP 錯誤通常記錄到標準 error_log 檔案中,但可能希望將它們儲存在資料庫中,以便更容易追蹤和分析。雖然如果不創建自訂錯誤處理程序,這不可能直接實現,但可以透過單一全域變更來實現。
實作自訂錯誤處理程序
控制的關鍵處理錯誤的方式是建立自訂錯誤處理程序。這可以使用 set_error_handler() 函數來完成,該函數將回調函數作為其參數。回呼函數應具有以下簽名:
function error_handler($errno, $errstr, $errfile, $errline) {}
在回調函數內,您可以確定應如何處理每個錯誤,包括是否將其記錄到資料庫。
將錯誤記錄到MySQL 的範例
以下程式碼顯示了將PHP 錯誤記錄到MySQL 資料庫的自訂錯誤處理程序的範例:
function myErrorHandler($errno, $errstr, $errfile, $errline) { // Establish connection to MySQL database $conn = mysqli_connect("hostname", "username", "password", "database"); // Prepare SQL query to log error $query = "INSERT INTO error_log (number, string, file, line) VALUES (?, ?, ?, ?)"; $stmt = mysqli_prepare($conn, $query); // Bind parameters to SQL query mysqli_stmt_bind_param($stmt, "isss", $errno, $errstr, $errfile, $errline); // Execute SQL query to log error mysqli_stmt_execute($stmt); // Close database connection mysqli_close($conn); // Don't execute PHP internal error handler return true; } // Set user-defined error handler $old_error_handler = set_error_handler("myErrorHandler");
設定使用者定義後錯誤處理程序,所有PHP 錯誤都將透過您的自訂錯誤處理邏輯進行路由,包括記錄到MySQL 資料庫.
以上是可以將 PHP 錯誤儲存在資料庫而不是日誌檔案嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!