php錯誤處理之錯誤記錄日誌

在某些公司裡面,有專門的日誌收集系統。日誌收集系統會在背後默默的幫你收集錯誤、警告、提示。

也有些公司沒有專門的日誌收集系統,透過檔案來伺服器當中的運行日誌。

其中:PHP的錯誤,警告這些是必須要收信的。

那麼問題來了-不讓使用者看到,設定好錯誤報告等級好,如何將錯誤收集到日誌系統呢?

這裡有需要使用到php.ini的相關設定項。這兩個配置項目為:

是否開啟日誌記錄單行錯誤最大記錄長度
參數配置項目說明
log_errorson/off
log_errors_max_len整數型,預設1024

error_log

#syslog或指定路徑

錯誤日誌記錄在什麼地方

說明:

    1.在表格中的log_errors和log_errors_max_len非常好理解。

    2.而error_log 指定錯誤存在什麼路徑上。配置項目中的syslog可能有點不太好理解。 syslog是指系統來記錄。 windows系統在電腦的日誌收集器裡面。 linux預設在:/etc/syslog.conf

[擴充] 了解知識點。若Linux系統啟動或修改了日誌收集。可能儲存在第三方專用的日誌收集伺服器中。 此外,PHP還為我們專門準備了一個自訂的錯誤日誌函數:bool error_log ( string $錯誤訊息[, int $錯誤訊息類型= 0 [, string $存儲目標]] )這個函數可以把錯誤訊息傳送到web伺服器的錯誤日誌,或是到一個檔案裡。 常用的錯誤訊息類型:說明0#1
錯誤訊息類型
傳送至預設的error_log指定位置
傳送到指定的郵件位置


3

傳送至指定的檔案位置


##########範例:###
<?php

//无法连接到数据库服务器,直接记录到php.ini 中的error_log指定位置
error_log("无法连接到数据库服务器服务器");

//可以发送邮件,但是php.ini必须配置过邮件系统
error_log('可以用邮件报告错误,让运维人员半夜起床干活',1 ,'pig@php.cn');

//记录在指定的位置
error_log("我是一个错误哟", 3, "d:/test/my-errors.log");

?>
###注意:## #error_log 中發送郵件可能對初學者不熟,您可以不用掌握些塊知識。 ############
繼續學習
||
<?php //无法连接到数据库服务器,直接记录到php.ini 中的error_log指定位置 error_log("无法连接到数据库服务器服务器"); //可以发送邮件,但是php.ini必须配置过邮件系统 error_log('可以用邮件报告错误,让运维人员半夜起床干活',1 ,'liwenkai@phpxy.com'); //记录在指定的位置 error_log("我是一个错误哟", 3, "d:/test/my-errors.log"); ?>