首頁 >php框架 >Swoole >swoole自訂錯誤的方法

swoole自訂錯誤的方法

尚
原創
2019-12-17 09:39:262017瀏覽

swoole自訂錯誤的方法

建立錯誤處理器

實作ErrorHandlerInterface介面

namespace App;
use Core\AbstractInterface\ErrorHandlerInterface;
class Test implements ErrorHandlerInterface
{
    function handler( $msg,$file = null,$line = null,$errorCode = null,$trace )
    {
        echo "文件{$file}的第{$line}行,错误:{$msg}";
    }
    function display($msg,$file = null,$line = null,$errorCode = null,$trace )
    {
    }
    function log( $msg,$file = null,$line = null,$errorCode = null,$trace )
    {
    }
}

當開啟DEBUG.ENABLE的時候,則自訂錯誤處理有效。

IOC注入

在框架初始化後事件注入:

Di::getInstance()->set(SysConst::ERROR_HANDLER,Test::class);

注意,若在接下去的beforeWorker事件中有邏輯錯誤,則會導致在服務啟動前,錯誤處理類別立即被實例化,若在處理函數內,有用到例如redis等連接,則會造成多進程連接共用問題,為避免該情況,可以利用task進程去轉換。

例如,發生錯誤訊息的時候,則投遞至task進程,在task進程中去獲取一個單例的redis連接,來寫入錯誤訊息。

推薦學習: swoole影片教學

#

以上是swoole自訂錯誤的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn