php.ini設定錯誤日誌的方法:1、開啟php.ini設定文件,修改「display_errors = On」;2、記錄到error_log指定的檔案中;3、設定「error_reporting」。
本文操作環境: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)
<?php //禁用错误报告 error_reporting(0); //报告运行时错误 error_reporting(E_ERROR | E_WARNING | E_PARSE); //报告所有错误 error_reporting(E_ALL); ?>
以上是php.ini怎麼配置錯誤日誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!