91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

記錄PHP錯誤日志的方法

發布時間:2020-08-15 10:18:22 來源:億速云 閱讀:149 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關記錄PHP錯誤日志的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

記錄PHP錯誤日志的方法:首先設置PHP的配置文件;然后將使用指定的文件記錄錯誤報告日志;最后錯誤信息記錄到操作系統的日志里。

記錄PHP錯誤日志的方法

記錄PHP錯誤日志的方法:

1、使用指定的文件記錄錯誤報告日志

如果使用自己指定的文件記錄錯誤日志,一定要確保將這個文件存放在文檔根目錄之外,以減少遭到攻擊的可能。

并且該文件一定要讓PHP腳本的執行用戶 (Web服務器進程所有者)具有寫權限。假設在Linux操作系統中,將/usr/local/目錄下的error.log文件作為錯誤日志文件,并設置 Web服務器進程用戶具有寫的權限。然后在PHP的配置文件中,將error_log指令的值設置為這個錯誤日志文件的絕對路徑。

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

  • error_reporting = E_ALL ;將會向PHP報告發生的每個錯誤

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

  • log_errors = On ;決定日志語句記錄的位置

  • log_errors_max_len = 1024 ;設置每個日志項的最大長度

  • error_log = /usr/local/error.log ;指定產生的 錯誤報告寫入的日志文件位置

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)){ 
error_log("Oracle數據庫不可用!", 0); //將錯誤消息寫入到操作系統日志中 
 } 
if(!($foo=allocate_new_foo()){ 
 error_log("出現大麻煩了!", 1, ". mydomain.com"); //發送到管理員郵箱中 
 } 
error_log("搞砸了!", 2, "localhost:5000"); //發送到本機對應5000端口的服務器中 
error_log("搞砸了!", 3, "/usr/local/errors.log"); //發送到指定的文件中 
?>

2、 錯誤信息記錄到操作系統的日志里

錯誤報告也可以被記錄到操作系統日志里,但不同的操作系統之間的日志管理有點區別。在Linux上錯誤語句將送往syslog,而在Windows上錯誤 將發送到事件日志里。如果你不熟悉syslog,起碼要知道它是基于UNIX的日志工具,它提供了一個API來記錄與系統和應用程序執行有關的消息。 Windows事件日志實際上與UNIX的syslog相同,這些日志通常可以通過事件查看器來查看。如果希望將錯誤報告寫到操作系統的日志里,可以在配 置文件中將error_log指令的值設置為syslog。

具體需要在php.ini中修改的配置指令如下所示:

  • error_reporting = E_ALL ;將會向PHP報告發生的每個錯誤

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

  • log_errors = On ;決定日志語句記錄的位置

  • log_errors_max_len = 1024 ;設置每個日志項的最大長度

  • error_log = syslog ;指定產生的錯誤報告寫入操作系統的日志里

除了一般的錯誤輸出之外,PHP還允許向系統syslog中發送定制的消息。雖然通過前面介紹的error_log()函數,也可以向syslog中發送定制的消息,但在PHP中為這個特性提供了需要一起使用的4個專用函數。

分別介紹如下:

define_syslog_variables()

在使用openlog()、syslog及closelog()三個函數之前必須先調用該函數。因為在調用該函數時,它會根據現在的系統環境為下面三個函數初使用化一些必需的常量。

openlog()

打開一個和當前系統中日志器的連接,為向系統插入日志消息做好準備。并將提供的第一個字符串參數插入到每個日志消息中,該函數還需要指定兩個將在日志上下文使用的參數,可以參考官方文檔使用。

syslog()

該 函數向系統日志中發送一個定制消息。需要兩個必選參數,第一個參數通過指定一個常量定制消息的優先級。例如LOG_WARNING表示一般的警 告,LOG_EMERG表示嚴重地可以預示著系統崩潰的問題,一些其他的表示嚴重程度的常量可以參考官方文檔使用。第二個參數則是向系統日志中發送的定制 消息,需要提供一個消息字符串,也可以是PHP引擎在運行時提供的錯誤字符串。

closelog()

該函數在向系統日志中發送完成定制消息以后調用,關閉由openlog()函數打開的日志連接。

如果在配置文件中,已經開啟向syslog發送定制消息的指令,就可以使用前面介紹的四個函數發送一個警告消息到系統日志中,并通過系統中的syslog解析工具,查看和分析由PHP程序發送的定制消息,如下所示:

define_syslog_variables(); 
openlog("PHP5", LOG_PID , LOG_USER); 
 syslog(LOG_WARNING, "警告報告向syslog中發送的演示, 警告時間:".date("Y/m/d H:i:s")); 
 closelog(); 
 ?>

關于記錄PHP錯誤日志的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿城市| 德化县| 新和县| 营口市| 含山县| 定西市| 资溪县| 长春市| 浦东新区| 阜城县| 五华县| 双城市| 醴陵市| 张家川| 平舆县| 拉萨市| 苏州市| 宁化县| 淮阳县| 疏附县| 叶城县| 庄河市| 乐清市| 广丰县| 洪泽县| 灌南县| 乌拉特中旗| 长顺县| 仁化县| 婺源县| 卫辉市| 杨浦区| 唐海县| 舟曲县| 云和县| 平定县| 灵山县| 霞浦县| 白玉县| 吉林市| 隆昌县|