我正在开发一个Web应用程序,该应用程序将向少数用户进行测试.显然会有bug,所以我想捕获它们以便更容易开发修复程序.有没有办法拦截我的Web应用程序中的任何控制台消息(浏览器/ js错误和使用console.log生成的消息),所以我可以将它们发送到服务器上的日志服务并让它们可用于调试?
Lemme首先给出了我所拥有的代码的基本描述.我从一个主要的父进程开始(注意:为了简单起见,我没有显示所有函数.如果你需要我在任何时候进行扩展,请告诉我):
declare(ticks=1);
pcntl_signal(SIGHUP, array('forker', 'restartSignalHandler'));
if(forker_is_not_running()){
new Forker();
}
class Forker {
private $active_forks = array();
private $parent_pid = null;
public function __construct(){
$this->parent_pid = getmypid();
$this->create_fork();
$this->wait_for_active();
}
public function wait_for_active(){
while(!empty($this->active_forks)){
foreach($this->active_forks as $k=>$fork){
if($this->fork_no_longer_running($fork)){
unset($this->active_forks[$k]);
}
}
}
}
// Pseudo code
public function fork_no_longer_running($pid){
// return true if 'ps -elf | grep $pid' doesn't returns only the grep command
// else return false (aka the fork is still running)
}
public function create_fork(){
$pid = pcntl_fork(); …Run Code Online (Sandbox Code Playgroud)