這篇文章主要介紹了php錯(cuò)誤日志的作用是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元銅梁做網(wǎng)站,已為上家服務(wù),為銅梁各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
在php中,錯(cuò)誤日志用于記錄程序運(yùn)行時(shí)的出錯(cuò)信息,可以幫助開(kāi)發(fā)人員或者管理人員查看系統(tǒng)是否存在問(wèn)題;開(kāi)發(fā)人員和維護(hù)人員也可以利用錯(cuò)誤日志對(duì)系統(tǒng)進(jìn)行調(diào)試和維護(hù)。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦
php錯(cuò)誤日志有什么用
錯(cuò)誤日志用于記錄程序運(yùn)行時(shí)的出錯(cuò)信息。
錯(cuò)誤日志的記錄,可以幫助開(kāi)發(fā)人員或者管理人員查看系統(tǒng)是否存在問(wèn)題。編程人員和維護(hù)人員等可以利用錯(cuò)誤日志對(duì)系統(tǒng)進(jìn)行調(diào)試和維護(hù)。
如果需要將程序中的錯(cuò)誤報(bào)告寫入錯(cuò)誤日志中,只要在 PHP 的配置文件中,將配置項(xiàng) log_errors 開(kāi)啟即可。
錯(cuò)誤報(bào)告默認(rèn)會(huì)記錄到 Web 服務(wù)器的日志文件里,例如記錄到 Apache 服務(wù)器的錯(cuò)誤日志文件 error.log 中。當(dāng)然也可以將錯(cuò)誤日志記錄到指定的文件中。
使用指定的文件記錄錯(cuò)誤報(bào)告日志
如果想使用自己指定的文件記錄錯(cuò)誤日志,一定要確保這個(gè)文件存放在文檔根目錄之外,以減少遭到攻擊的可能。并且該文件一定要讓 PHP 腳本具有寫權(quán)限。假設(shè)在 Linux 操作系統(tǒng)中,將 /usr/local/ 目錄下的 error.log 文件作為錯(cuò)誤日志文件,并設(shè)置 Web 服務(wù)器進(jìn)程用戶具有寫的權(quán)限。然后在 PHP 的配置文件中,將 error_log 指令的值設(shè)置為這個(gè)錯(cuò)誤日志文件的絕對(duì)路徑。
需要將 php.ini 中的配置指令做如下修改:
error_reporting = E_ALL // 將會(huì)向PHP報(bào)告發(fā)生的每個(gè)錯(cuò)誤 display_errors = Off // 不顯示滿足上條 指令所定義規(guī)則的所有錯(cuò)誤報(bào)告 log_errors = On // 決定日志語(yǔ)句記錄的位置 log_errors_max_len = 1024 // 設(shè)置每個(gè)日志項(xiàng)的最大長(zhǎng)度 error_log = E:/php_log/php_error.log // 指定產(chǎn)生的錯(cuò)誤報(bào)告寫入的日志文件位置
PHP 的配置文件按上面的方式設(shè)置完成以后,并重新啟動(dòng) Web 服務(wù)器。這樣,在執(zhí)行 PHP 的任何腳本文件時(shí),產(chǎn)生的所有錯(cuò)誤報(bào)告都不會(huì)在瀏覽器中顯示,而會(huì)記錄在自己指定的錯(cuò)誤日志 E:/php_log/php_error.log 中。
此外,不僅可以記錄滿足 error_reporting 所定義規(guī)則的所有錯(cuò)誤,而且還可以使用 PHP 中的 error_log() 函數(shù)把錯(cuò)誤信息發(fā)送到 web 服務(wù)器的錯(cuò)誤日志或者到一個(gè)文件里。
error_log() 函數(shù)的原型如下所示:
error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] ) : bool
參數(shù)說(shuō)明如下:
$message:需要記錄的錯(cuò)誤信息;
$message_type:設(shè)置錯(cuò)誤應(yīng)該發(fā)送到何處??赡艿男畔㈩愋陀幸韵聨讉€(gè):
0:(默認(rèn)值)將 $message 發(fā)送到 PHP 的系統(tǒng)日志,使用操作系統(tǒng)的日志機(jī)制或者一個(gè)文件,取決于配置文件中 error_log 設(shè)置了什么;
1:將 $message 發(fā)送到參數(shù) $destination 設(shè)置的郵件地址。 第四個(gè)參數(shù) $extra_headers 只有在這個(gè)類型里才會(huì)被用到;
2:(已廢棄)不再是一個(gè)選項(xiàng);
3:$message 被發(fā)送到位置為 $destination 的文件里。字符 $message 不會(huì)默認(rèn)被當(dāng)做新的一行;
4:將 $message 直接發(fā)送到 SAPI 的日志處理程序中。
$destination:目標(biāo),也就是錯(cuò)誤消息被發(fā)送到的目的地。它的含義描述于以上,由 $message_type 參數(shù)所決定;
$extra_headers:額外的頭。當(dāng) $message_type 設(shè)置為 1 的時(shí)候使用。 該信息類型使用了 mail() 的同一個(gè)內(nèi)置函數(shù)。
示例:
以登入 MySQL 數(shù)據(jù)庫(kù)為例,當(dāng)?shù)侨胧r(shí)記錄錯(cuò)誤信息。
運(yùn)行上面的代碼,會(huì)在 php.ini 配置文件中 error_log 一項(xiàng)所設(shè)置的目錄中生成對(duì)應(yīng)的錯(cuò)誤日志文件,文件內(nèi)容如下:
[08-May-2020 13:17:31 PRC] PHP Warning: mysqli_connect(): (HY000/1045): Access denied for user 'my_user'@'localhost' (using password: YES) in D:\WWW\index.php on line 2 [08-May-2020 13:17:31 PRC] Mysql 數(shù)據(jù)庫(kù)連接失??!
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php錯(cuò)誤日志的作用是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!