diff --git a/Handler/OnServerWorker.php b/Handler/OnServerWorker.php index c17ce03..16c1ae4 100644 --- a/Handler/OnServerWorker.php +++ b/Handler/OnServerWorker.php @@ -12,6 +12,7 @@ use Kiri\Server\Events\OnWorkerError; use Kiri\Server\Events\OnWorkerExit; use Kiri\Server\Events\OnWorkerStart; use Kiri\Server\Events\OnWorkerStop; +use Psr\Http\Message\RequestInterface; use Swoole\Server; use Swoole\Timer; use Throwable; @@ -117,8 +118,15 @@ class OnServerWorker extends Kiri\Server\Abstracts\Server event(new OnWorkerError($server, $worker_id, $worker_pid, $exit_code, $signal)); debug_print_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT); - $message = sprintf('Worker#%d::%d error stop. signal %d, exit_code %d, msg %s', $worker_id, $worker_pid, $signal, $exit_code, swoole_strerror(swoole_last_error(), $signal)); + /** @var RequestInterface $context */ + $context = Kiri\Di\Context::get(RequestInterface::class); + if (is_null($context)) { + $message = sprintf('Worker#%d::%d error stop. signal %d, exit_code %d, msg %s', $worker_id, $worker_pid, $signal, $exit_code, swoole_strerror(swoole_last_error(), $signal)); + } else { + $message = sprintf('Worker#%d::%d error stop. signal %d, exit_code %d, msg %s, method: %s, path: %s, query: %s', $worker_id, $worker_pid, $signal, $exit_code, swoole_strerror(swoole_last_error(), $signal), + $context->getMethod(), $context->getUri()->getPath(), $context->getUri()->getQuery()); + } error($message); $this->system_mail($message);