詳解PHP錯誤日誌的獲取方法

2022-10-06 00:33:11 字數 1505 閱讀 1003

在php中錯誤日誌的獲取方法有很多種,下面我給大家簡單介紹下遇到此類問題如何解決,下面通過**給大家展示下,希望能夠幫助到大家。

<?php error_reporting (0);

register_shutdown_function($err = 'my_error_handler') or set_error_handler($err,e_all); // 同時註冊兩個函式.

// 函式引數錯誤

$original = unserialize ( array(423142,2134234));

// 不可對0除

echo 1/0;

// 不存在的陣列索引

echo $_get[程式設計客棧www.cppcns.com'aa'];

// 不存在的常量

php_e;

// 不存在的變數

echo $var;

// 函式引數錯誤

strlen(array(2434));

// 函式引數錯誤

md5(array(1));

// 使用者自定義錯誤

trigger_error('safdds',e_user_notice);

// 不存在的函式 php中斷

// tes();

// 不存在的方法 php中斷

$ts = new afsd();

function my_error_handler($errno=0 ,$errstr=0 , $errfile=0 ,$errline=0)

}else

echo '';

print_r($earr);

return array();

}對於php錯誤, 我們一定要認識清楚, 型別分幾種, 什麼時候觸發, 返回值是什麼.

如果不區分警告, 錯誤, 建議,提示等細型別種類, 那我們可以理解php錯誤型別共有兩種:

一種是強制中斷程式錯誤.  如錯誤, 方法不存在等. 記憶體不足, 超時

一種是非中斷式錯誤. 如警告, 提示這些

其中獲取中斷程式錯誤需要使用register_shutdown_function函式, 註冊乙個記憶體函式, 然後裡面取得錯誤資訊, 這種方法僅能獲取到首次的錯誤行, 如多個不存在的函式時, 它只能獲取到程式設計客棧首次的那個錯誤. 這其實也有好處, 你修復乙個, 它就會移至下乙個.

非中斷式錯誤, 如果用:register_shutdown_function, 那會變得異常難操作, 僅僅能獲取首次的提示或者警告, 這時我們需要set_error_handler, 每一次觸有error level cons程式設計客棧tants, 都會呼叫錯誤函式一次, 也就可以在裡面獲取錯誤日誌.  不過此函式會承接 eenekgrror_get_last 函式, 所以你會發現error_get_last返回為空, 全部由引數傳入了.

兩個函式一起運用, 即可獲取到程式的99%的錯誤, 這對於php程式來說, 算是雪中送打火機了.

試試執行上面的示例吧.

本文標題: 詳解php錯誤日誌的獲取方法

本文位址:

php錯誤日誌簡單配置方法

php.ini 錯誤日誌 log errors on 顯示錯誤 display errors off 日誌路徑 error log usr local lnmp php vawww.cppcns.comr log error log 錯誤等級 error reporting e all e noti...

php錯誤日誌

對於php開發者來說,一旦某個產品投入使用,應該立即將display errors選項關閉,以免因為這些錯誤所透露的路徑 資料庫連線 資料表等資訊而遭到黑客攻擊。但是,任何乙個產品在投入使用後,都難免會有錯誤出現,那麼如何記錄一些對開發者有用的錯誤報告呢?我們可以在單獨的文字檔案中將錯誤報告作為日誌...

php錯誤日誌

display errors 是否顯示錯誤 off遮蔽所有錯誤,on顯示錯誤,錯誤級別要 error reporting 定義,即輸出那些錯誤內容要error reporting定義。開發時可設定為 display errors on,正式環境最好關掉 display errors off,因為顯示...