diff --git a/src/Middlewares/CrashFailsafe.php b/src/Middlewares/CrashFailsafe.php index 94b188c..ee051ba 100644 --- a/src/Middlewares/CrashFailsafe.php +++ b/src/Middlewares/CrashFailsafe.php @@ -35,13 +35,22 @@ public function process(Message\ServerRequestInterface $request, Server\RequestH try { return $handler->handle($request); } catch (Throwable $t) { - error_log((string)$t); + $stackTrace = (string)$t; - return $this->hide ? - $this->staticResponse : - $this->responseFactory->createResponse(500) - ->withHeader('Content-Type', 'text/plain') - ->withBody($this->responseFactory->createStream((string)$t)); + while ($t->getPrevious() instanceof Throwable) { + $stackTrace .= "\n" . $t->getPrevious(); + $t = $t->getPrevious(); + } + + error_log($stackTrace); + + if ($this->hide) { + return $this->staticResponse; + } + + return $this->responseFactory->createResponse(500) + ->withHeader('Content-Type', 'text/plain') + ->withBody($this->responseFactory->createStream($stackTrace)); } } }