Create an error handler
Implement the ErrorHandlerInterface interface
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 ) { } }
When DEBUG.ENABLE is turned on, customize the error Processing is effective.
IOC injection
Event injection after the framework is initialized:
Di::getInstance()->set(SysConst::ERROR_HANDLER,Test::class);
Note that if there is a logic error in the subsequent beforeWorker event, it will As a result, the error handling class is instantiated immediately before the service is started. If a connection such as redis is used in the processing function, it will cause a multi-process connection sharing problem. To avoid this situation, the task process can be used to convert.
For example, when an error message occurs, it is delivered to the task process, and a singleton redis connection is obtained in the task process to write the error message.
Recommended learning:swoole video tutorial
The above is the detailed content of swoole custom error method. For more information, please follow other related articles on the PHP Chinese website!