Laravel - 錯誤處理



大多數 Web 應用都有特定的錯誤處理機制。利用這些機制,它們可以跟蹤錯誤和異常,並將其記錄下來以分析效能。本章將介紹 Laravel 應用中的錯誤處理。

重要提示

在詳細學習 Laravel 中的錯誤處理之前,請注意以下幾點:

  • 對於任何新專案,Laravel 預設在 **App\Exceptions\Handler** 類中記錄錯誤和異常。然後將其提交回使用者進行分析。

  • 當 Laravel 應用設定為除錯模式時,每次 Web 應用中發生錯誤時,都會顯示包含堆疊跟蹤的詳細錯誤訊息。

Error Log
  • 預設情況下,除錯模式設定為 **false**,您可以將其更改為 **true**。這允許使用者跟蹤所有帶有堆疊跟蹤的錯誤。

App Debug
  • Laravel 專案的配置包括 **debug** 選項,該選項決定向使用者顯示多少關於錯誤的資訊。預設情況下,在 Web 應用中,該選項設定為 **.env** 檔案的環境變數中定義的值。

    • 該值在本地開發環境中設定為 **true**,在生產環境中設定為 **false**。

    • 如果在生產環境中將該值設定為 **true**,則與終端使用者共享敏感資訊的風險會更高。

錯誤日誌

記錄 Web 應用中的錯誤有助於跟蹤錯誤並規劃消除錯誤的策略。可以在 Web 應用的 **config/app.php** 檔案中配置日誌資訊。處理 Laravel 中的錯誤日誌時,請注意以下幾點:

  • Laravel 使用 monolog PHP 日誌庫。

  • 用於錯誤跟蹤的日誌引數為 **single,daily,syslog** 和 **errorlog**。

  • 例如,如果您希望將錯誤訊息記錄到日誌檔案中,則應將應用配置中的日誌值設定為 **daily**,如下面的命令所示:

'log' => env('APP_LOG',’daily’),
  • 如果採用 **daily** 日誌模式作為引數,Laravel 預設情況下會記錄 **5 天** 的錯誤日誌。如果您想更改日誌檔案的最大數量,則必須將配置檔案中的 **log_max_files** 引數設定為所需的值。

‘log_max_files’ => 25;

嚴重級別

由於 Laravel 使用 monolog PHP 日誌庫,因此有各種引數用於分析嚴重級別。可用的各種嚴重級別包括 **error,critical,alert** 和 **emergency 訊息**。您可以設定嚴重級別,如下面的命令所示:

'log_level' => env('APP_LOG_LEVEL', 'error')
廣告