Created
April 27, 2017 08:42
-
-
Save aprchen/362bdfa685e2ce50b051ec85879cf9bb to your computer and use it in GitHub Desktop.
出错后与python 通信
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Sl\Plugins; | |
use Phalcon\Events\Event; | |
use Phalcon\Exception; | |
use Phalcon\Mvc\User\Plugin; | |
use Phalcon\Dispatcher; | |
use Phalcon\Mvc\Dispatcher\Exception as DispatcherException; | |
use Phalcon\Mvc\Dispatcher as MvcDispatcher; | |
use Sl\Library\SocketHelper; | |
/** | |
* 未找到插件 | |
* | |
*/ | |
class NotFoundMiddleware extends Plugin | |
{ | |
/** | |
* | |
* | |
* @param Event $event | |
* @param MvcDispatcher $dispatcher | |
* @param \Exception $exception | |
* @return boolean | |
*/ | |
public function beforeException(Event $event, MvcDispatcher $dispatcher, \Exception $exception) | |
{ | |
if ($exception instanceof DispatcherException) { | |
switch ($exception->getCode()) { | |
case Dispatcher::EXCEPTION_HANDLER_NOT_FOUND: | |
case Dispatcher::EXCEPTION_ACTION_NOT_FOUND: | |
$dispatcher->forward( | |
[ | |
'controller' => 'errors', | |
'action' => 'show404' | |
] | |
); | |
return false; | |
} | |
} | |
if(ENV == 'DEV'){ | |
echo $exception->getMessage() . '<br>'; | |
echo '<pre>' . $exception->getTraceAsString() . '</pre>'; | |
}else{ | |
$log = \Log::logger(); | |
try{ | |
$socket = new SocketHelper(BOOT_HOST,BOOT_PORT); | |
$content = "## 访问时间: " . date('Y-m-d H:i:s') . PHP_EOL . "## 访问来源: " . $_SERVER["REMOTE_ADDR"] . PHP_EOL . "## 请求字段: " . $_SERVER['QUERY_STRING'] . PHP_EOL . "## 错误信息:".$exception->getMessage() ; | |
$socket->send_data($content); if($socket->read_data() !='ok'){ | |
//SMS balabala 机器人挂啦,信息保存到未发送日志,下次发送时检查是否存在未发送日志,存在发送成功后删除 | |
} | |
$socket->close_socket(); | |
$log->error($exception->getMessage() . PHP_EOL . $exception->getTraceAsString()); | |
$log->close(); | |
}catch (Exception $e){ | |
$log->error("微信机器人连接失败" . PHP_EOL . $exception->getMessage() . PHP_EOL . $exception->getTraceAsString()); | |
$log->close(); | |
} | |
} | |
$dispatcher->forward( | |
[ | |
'controller' => 'errors', | |
'action' => 'show500' | |
] | |
); | |
return false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment