新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
swoole如何自定義錯誤-創(chuàng)新互聯(lián)
小編給大家分享一下swoole如何自定義錯誤,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)建錯誤處理器
實現(xiàn)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 ) { } }
當(dāng)開啟DEBUG.ENABLE的時候,則自定義錯誤處理有效。
IOC注入
在框架初始化后事件注入:
Di::getInstance()->set(SysConst::ERROR_HANDLER,Test::class);
注意,若在接下去的beforeWorker事件中有邏輯錯誤,則會導(dǎo)致在服務(wù)啟動前,錯誤處理類立即被實例化,若在處理函數(shù)內(nèi),有用到例如redis等連接,則會造成多進程連接共用問題,為避免該情況,可以利用task進程去轉(zhuǎn)換。
例如,發(fā)生錯誤信息的時候,則投遞至task進程,在task進程中去獲取一個單例的redis連接,來寫入錯誤信息。
看完了這篇文章,相信你對“swoole如何自定義錯誤”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
當(dāng)前文章:swoole如何自定義錯誤-創(chuàng)新互聯(lián)
文章URL:http://fisionsoft.com.cn/article/dchseg.html