PHP的錯誤日誌配置

2021-06-25 19:35:46 字數 2568 閱讀 4169

1 配置指令

1) 設定錯誤報告級別

error_reporting指令確定報告的級別,共有16個不同的級別。

級別				描述

e_all 所有錯誤和警告

e_complie_error 致命的編譯時錯誤

e_complie_warning 編譯時警告

e_core_error

e_core_ warning

e_deprecated 未來版本中將移除的特性的警告

e_error 執行時錯誤

e_notice 一般提示資訊

e_parse 編譯時解析錯誤

e_recoverable_erropr 幾乎致命的錯誤 php5.2引入

e_strict php版本可移植性建議

e_user_ deprecated 使用者使用計畫在php未來版本中移除的特性時的警告

e_user_notice 使用者導致的一般資訊

e_user_warning 使用者導致的警告

e_warning 執行時警告

例子:

# 在開發階段,報告所有錯誤,將來版本e_all可能並不包含e_strict

error_reporting = e_all & e_strict

# 只考慮致命的執行時錯誤、解析錯誤和核心錯誤

error_reporting = e_error | e_parse | e_core_error

# 希望報告除了e_user_warning級之外的所有錯誤

error_reporting = e_all & ~e_user_warning

2 在瀏覽器上顯示錯誤

啟用display_errors時,將顯示滿足error_reporting所定義規則的所有錯誤。一般在開始測試期間啟用此命令。

注意:php5.2中引入了乙個名為error_get_last()的函式。它返回乙個關聯陣列,包含最後出現的錯誤的型別、訊息、檔案以及行號。

3 顯示啟動錯誤

啟用display_startup_errors指令會顯示php引擎初始化時遇到的所有錯誤。

4 記錄錯誤

是否記錄錯誤由log_errors指令規定,而error_log指定錯誤記錄的位置

5 標識日誌檔案

錯誤可以傳送給系統日誌後台程式,或者送往error_log指令指定的檔案。

6 設定日誌行的最大長度

log_errors_max_len指令設定每個日誌項的最大長度,預設1024位元組。設定為0表示不指定最大長度。

7 忽略重複的錯誤

ignore_repeated_errors

8 忽略相同位置發生的錯誤

ignore_repeated_source

9 在變數中儲存最近發生的錯誤

啟用track_errors指令會使php在變數$php_errormsg中儲存最近發生的錯誤訊息。

關於更多更詳細內容,可以參考:

注意:log_errors決定了是否記錄php日誌,但是記錄的位置是由error_log決定的,預設設定是空的,這樣php的錯誤日誌將傳送到web伺服器(如果該配置沒有設定,則錯誤資訊會被傳送到 sapi 錯誤記錄器),由web伺服器記錄這些日誌,但是也可以指定乙個檔案給它,讓它記錄到這個檔案去,或者設定為syslog讓其交給系統處理。不過,在使用fastcgi的php中,錯誤並沒有被web伺服器記錄。在php作為apache模組的測試中,php的錯誤日誌的確記錄到了apache的error_log中。

php配置例子:

; 錯誤報告級別

error_reporting = e_all & ~e_deprecated

; 是否顯示錯誤

display_errors = off

; 是否顯示啟動錯誤

display_startup_errors = off

; 是否啟用錯誤日誌記錄

log_errors = on

; 日誌記錄最大長度

log_errors_max_len = 1024

ignore_repeated_errors = off

ignore_repeated_source = off

;記憶體洩露

report_memleaks = on

; this setting is on by default.

;report_zend_debug = 0

track_errors = off

;xmlrpc_errors = 0

;xmlrpc_error_number = 0

html_errors = off

;docref_root = "/phpmanual/"

;docref_ext = .html

;error_prepend_string = ""

;error_log = php_errors.log

如果php的配置指令error_log設定為syslog,這表示把日誌傳送到syslog來處理,如果是這種方式,php還提供了openlog()、close-log()和syslog()函式了定製傳送的日誌。

配置php錯誤日誌提示方式

php配置檔案 一般情況下路徑為 etc php.ini 中可設定日誌的顯示形式 1 display errors on 頁面輸出錯誤提示,一般用於開發模式 display errors off 頁面不輸出錯誤提示,只顯示伺服器錯誤,用於線上模式 若將display errors置為off則會引發乙...

php錯誤日誌簡單配置方法

php.ini 錯誤日誌 log errors on 顯示錯誤 display errors off 日誌路徑 error log usr local lnmp php vawww.cppcns.comr log error log 錯誤等級 error reporting e all e noti...

php錯誤日誌

對於php開發者來說,一旦某個產品投入使用,應該立即將display errors選項關閉,以免因為這些錯誤所透露的路徑 資料庫連線 資料表等資訊而遭到黑客攻擊。但是,任何乙個產品在投入使用後,都難免會有錯誤出現,那麼如何記錄一些對開發者有用的錯誤報告呢?我們可以在單獨的文字檔案中將錯誤報告作為日誌...