php錯誤日誌記錄設定

2021-07-12 03:22:46 字數 2129 閱讀 6631

對於php開發者來說,一旦某個產品投入使用,應該立即將 display_errors選項關閉,以免因為這些錯誤所透露的路徑、資料庫連線、資料表等資訊而遭到黑客攻擊。但是,任何乙個產品在投入使用後,都難 免會有錯誤出現,那麼如何記錄一些對開發者有用的錯誤報告呢?我們可以在單獨的文字檔案中將錯誤報告作為日誌記錄。錯誤日誌的記錄,可以幫助開發人員或者 管理人員檢視系統是否存在問題。 如果需要將程式中的錯誤報告寫入錯誤日誌中,只要在php的配置檔案中,將配置指令log_errors開啟即可。錯誤 報告預設就會記錄到web伺服器的日誌檔案裡,例如記錄到apache伺服器的錯誤日誌檔案error.log中。當然也可以記錄錯誤日誌到指定的檔案中 或傳送給系統syslog,分別介紹如下:

使用指定的檔案記錄錯誤報告日誌:

使用指定的檔案記錄錯誤報告日誌使用指定的檔案記錄錯誤報告日誌使用指定的檔案記錄錯誤報告日誌 如果使用自己指定的檔案記錄錯誤日誌,一定要確保將這個檔案存放在文件根目錄之外,以減少遭到攻擊的可能。並且該檔案一定要讓php指令碼的執行使用者(web伺服器程序所有者)具有寫許可權。假設在linux操作系 統中,將/usr/local/目錄下的error.log檔案作為錯誤日誌檔案,並設定web伺服器程序使用者具有寫的許可權。然後在php的配置檔案中, 將error_log指令的值設定為這個錯誤日誌檔案的絕對路徑。

需要將php.ini中的配置指令做如下修改:

error_reporting  =  e_all & ~e_notice                  ;將會向php報告發生的每個錯誤   

display_errors = off ;不顯示滿足上條 指令所定義規則的所有錯誤報告

log_errors = on ;決定是否記錄錯誤日誌

log_errors_max_len = 1024 ;設定每個日誌項的最大長度

error_log = /usr/local/error.log ;指定產生的 錯誤報告寫入的日誌檔案位置

注意:在生產環境中一定要設定 display_errors = off

php 的配置檔案按上面的方式設定完成以後,並重新啟動web伺服器。這樣,在執行php的任何指令碼檔案時,所產生的所有錯誤報告都不會在瀏覽器中顯示,而會記 錄在自己指定的錯誤日誌/usr/local/error.log中。

此外,不僅可以記錄滿足error_reporting所定義規則的所有錯誤,而且 還可以使用php中的error_log()函式,送出乙個使用者自定義的錯誤資訊。

該函式的原型如下所示:

bool error_log ( string message [, int message_type  [, string destination [, string extra_headers]]] )
此函式會送出錯誤資訊到web伺服器的錯誤日誌檔案、某個tcp伺服器或到指定檔案中。該函式執行成功則返回true,失敗則返回false。第乙個引數 message 是必選項,即為要送出的錯誤資訊。如果僅使用這乙個引數,會按配置檔案php.ini中所設定的位置處傳送訊息。第二個引數 message_type為整數值:0表示送到作業系統的日誌中;1則使用php的mail()函式,傳送資訊到某e-mail處,第四個引數 extra_headers亦會用到;2則將錯誤資訊送到tcp 伺服器中,此時第三個引數destination表示目的地ip及port;3則將資訊 存到檔案destination中。

如果以登入oracle資料庫出現問題的處理為例,該函式的使用如下所示:

<?php

if(!ora_logon($username, $password))

if(!($foo=allocate_new_foo())

error_log("搞砸了!", 2, "localhost:5000"); //傳送到本機對應5000埠的伺服器中

error_log("搞砸了!", 3, "/usr/local/errors.log"); //傳送到指定的檔案中

?>

PHP之記錄錯誤日誌

在開發階段,需要顯示所有錯誤 而在產品階段,則需要隱藏所有錯誤並記錄所有錯誤 同樣記錄錯誤有兩種方式 在php.ini中 log errors on off 設定是否記錄日誌 errors log log 設定錯誤日誌檔名,若沒有給定路徑,則在所有目錄下生成日誌檔案 error log syslog...

設定錯誤日誌

1.前台報錯關閉 在php.ini中display error off 2.日誌開啟記錄功能開啟 在php.ini中log errors on 3.如果想單獨記錄可以建立乙個檔案,修改php.ini中error log c wamp logs php error.log 獨立的日誌比apache日誌...

nginx 錯誤日誌 沒有記錄 PHP錯誤的原因

事情是這樣子的 前一段時間,php出錯後,具體的錯誤資訊,沒有顯示出來,以為是輸出到nginx的錯誤日誌裡了,但是nginx的錯誤日誌沒有php的錯誤資訊,只有一些系統錯誤。搞了很久,最後是通過改php fpm.conf 配置,將php錯誤直接輸出在瀏覽器裡。一開始我是改php.ini 裡 的 di...