您好,登錄后才能下訂單哦!
小編給大家分享一下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如何自定義錯誤”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。