首頁  >  文章  >  後端開發  >  php.ini怎麼配置錯誤日誌

php.ini怎麼配置錯誤日誌

藏色散人
藏色散人原創
2021-07-16 09:19:292464瀏覽

php.ini設定錯誤日誌的方法:1、開啟php.ini設定文件,修改「display_errors = On」;2、記錄到error_log指定的檔案中;3、設定「error_reporting」。

php.ini怎麼配置錯誤日誌

本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦

php.ini怎麼配置錯誤日誌?

php.ini設定--記錄PHP錯誤日誌

PHP.ini 中關於錯誤日誌的設定項:

#; display_errors
;   Default Value: On
;   Development Value: On
;   Production Value: Off
; display_startup_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: Off
; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;。 ;   Production value: Off

; log_errors ;   Default Value: Off
;   Development Value: On
;   Production Value: On

display_errors = Off


error_reporting = E_ALL & ~E_NOTICE 

log_errors = On



error_log = "e:/wamp/logs/php_error.log"

1.) display_errors = On 
##開啟狀態下,若發生錯誤,則報錯,出現錯誤提示 
dispaly_errors = Off 
關閉狀態下,若出現錯誤,則提示:伺服器錯誤。但是不會出現錯誤提示 

錯誤回顯,一般常用語開發模式,但是許多應用程式在正式環境中也忘記了關閉此選項。錯誤回顯可以暴露出非常多的敏感訊息,為攻擊者下一步攻擊提供便利。上線後推薦關閉此選項。 
2.)log_errors 
#在正式環境下用這個就行了,把錯誤訊息記錄在日誌裡。正好可以關閉錯誤回顯。

預設是記錄到WEB伺服器的日誌檔案裡,例如Apache的error.log檔案。 當然也可以記錄 error_log 指定的檔案中。

3)error_reporting 

error_reporting = E_ALL & ~E_NOTICE 

#參考:http://hi.baidu.com/allense7en /item/6eb4a4ab0d596a15a8cfb7b4

#可以將數字加起來得到想要的錯誤回報等級。

E_ALL - 所有的錯誤和警告(不包括E_STRICT) 
E_ERROR - 致命性的運行時錯誤 
E_WARNING - 運行時警告(非致命性錯誤) 
E_PARSE - 編譯時解析錯誤 
E_NOTICE - 運行時提醒(這些經常是你代碼中的bug引起的,也可能是有意的行為造成的。) 
E_STRICT - 編碼標準化警告,允許PHP建議如何修改程式碼以確保最佳的互通性向前相容性。

E_CORE_ERROR - PHP啟動時初始化過程中的致命錯誤 
E_CORE_WARNING - PHP啟動時初始化過程中的警告(非致命性錯) 
E_COMPILE_ERROR - 編譯時致命性錯誤 
E_COMPILE_WARNING - 編譯時警告(非致命性錯誤) 
E_USER_ERROR - 用戶自訂的錯誤訊息 
E_USER_WARNING - 用戶自訂的警告訊息 
# E_USER_NOTICE - 用戶自訂的訊息提醒設定為:E_ALL | E_STRICT,則表示記錄所有的錯誤訊息

#,可能會導致網站出現一大堆的錯誤代碼;但是對於程式設計師來說應該說是一件好事,可以把程式碼優化到最

優; 一些非致命性錯誤雖然不影響程式的運行,但是會使PHP的負擔加重,通常是增加了網站進程(例如

IIS的應用程式集區)的負擔。

本函數用來配置錯誤訊息回報的等級,參數 level 是一個整數的位元遮罩 (bitmask),請參閱下表。

遮罩值表示名稱 
1 E_ERROR 
2 E_WARNING 
#4 E_PARSE 
8 E_NOTICE 
16 E_CORE_ERROR 
32 E_CORE_WARNING 
64 E_COMPILE_ERROR 
128 E_COMPILE_WARNING 
256 E_USER_ERROR 
512 E_USER_WARNING 
#1024 E_USER_NOTICE 
##1024 E_USER_NOTICE #20#204
20 ##2048 E_STRICT

#

E_NOTICE 表示一般情形不記錄,只有程式有錯誤情形時才用到,例如企圖存取不存在的變量,或是呼叫 stat() 函數檢視不存在的檔案。 
E_WARNING 通常都會顯示出來,但不會中斷程式的執行。這對調試很有效。例如:用有問題的正規表示式呼叫 ereg()。 
E_ERROR 通常會顯示出來,也會中斷程式執行。意即用這個遮罩無法追查到記憶體配置或其它的錯誤。 
E_PARSE 從語法解析錯誤。 
E_CORE_ERROR 類似 E_ERROR,但不包含 PHP 核心造成的錯誤。 
E_CORE_WARNING 類似 E_WARNING,但不包含 PHP 核心錯誤警告。
error_reporting( 7 ) = error_reporting( 1 2 4) = error_reporting(E_ERROR | E_WARING | E_PARSE)

#範例#任意數目的以上選項都可以用「或」來連接(用OR 或|),這樣可以報告所有需要的各級錯誤。例如,下面的程式碼關閉了使用者自訂的錯誤和警告,執行了某些操作,然後恢復到原始的報錯等級:

<?php
//禁用错误报告
error_reporting(0);

//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误
error_reporting(E_ALL);
?>

#推薦學習:《

PHP影片教學#

以上是php.ini怎麼配置錯誤日誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn