From 993e7d88a1ce916baedb2ca36a6983784466df3d Mon Sep 17 00:00:00 2001 From: Marcel Hernandez Date: Fri, 23 Jun 2023 12:19:15 +0200 Subject: [PATCH] print stack traces of all nested exceptions --- src/Middlewares/CrashFailsafe.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) 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)); } } }