php錯(cuò)誤處理之錯(cuò)誤記錄日誌
在某些公司裡面,有專門的日誌收集系統(tǒng)。日誌收集系統(tǒng)會(huì)在背後默默的幫你收集錯(cuò)誤、警告、提示。
也有些公司沒(méi)有專門的日誌收集系統(tǒng),透過(guò)檔案來(lái)伺服器當(dāng)中的運(yùn)行日誌。
其中:PHP的錯(cuò)誤,警告這些是必須要收信的。
那麼問(wèn)題來(lái)了-不讓使用者看到,設(shè)定好錯(cuò)誤報(bào)告等級(jí)好,如何將錯(cuò)誤收集到日誌系統(tǒng)呢?
這裡有需要使用到php.ini的相關(guān)設(shè)定項(xiàng)。這兩個(gè)配置項(xiàng)目為:
參數(shù) | 配置項(xiàng)目 | 說(shuō)明 |
---|---|---|
log_errors | on/off | |
log_errors_max_len | 整數(shù)型,預(yù)設(shè)1024 |
說(shuō)明:
????1.在表格中的log_errors和log_errors_max_len非常好理解。
????2.而error_log 指定錯(cuò)誤存在什麼路徑上。配置項(xiàng)目中的syslog可能有點(diǎn)不太好理解。 syslog是指系統(tǒng)來(lái)記錄。 windows系統(tǒng)在電腦的日誌收集器裡面。 linux預(yù)設(shè)在:/etc/syslog.conf
[擴(kuò)充]bool error_log ( string $錯(cuò)誤訊息[, int $錯(cuò)誤訊息類型= 0 [, string $存儲(chǔ)目標(biāo)]] ) | 這個(gè)函數(shù)可以把錯(cuò)誤訊息傳送到web伺服器的錯(cuò)誤日誌,或是到一個(gè)檔案裡。 |
---|---|
錯(cuò)誤訊息類型 | |
傳送至預(yù)設(shè)的error_log指定位置 |
3
<?php //無(wú)法連接到數(shù)據(jù)庫(kù)服務(wù)器,直接記錄到php.ini 中的error_log指定位置 error_log("無(wú)法連接到數(shù)據(jù)庫(kù)服務(wù)器服務(wù)器"); //可以發(fā)送郵件,但是php.ini必須配置過(guò)郵件系統(tǒng) error_log('可以用郵件報(bào)告錯(cuò)誤,讓運(yùn)維人員半夜起床干活',1 ,'pig@php.cn'); //記錄在指定的位置 error_log("我是一個(gè)錯(cuò)誤喲", 3, "d:/test/my-errors.log"); ?>###注意:## #error_log 中發(fā)送郵件可能對(duì)初學(xué)者不熟,您可以不用掌握些塊知識(shí)。 ############