From 0a39e580e9b33df05375ff8471c6524ce030229d Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 9 Jan 2020 21:01:12 +0000 Subject: [PATCH] MainLogger: log exception chains in logException(), closes #2447 this method is simpler than #2447 and easier to apply to stable. --- src/pocketmine/utils/MainLogger.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/pocketmine/utils/MainLogger.php b/src/pocketmine/utils/MainLogger.php index 4ed9ec2b3..3ee06889b 100644 --- a/src/pocketmine/utils/MainLogger.php +++ b/src/pocketmine/utils/MainLogger.php @@ -205,14 +205,17 @@ class MainLogger extends \AttachableThreadedLogger{ $trace = $e->getTrace(); } - $message = self::printExceptionMessage($e); - $stack = Utils::printableTrace($trace); - - $this->synchronized(function() use ($message, $stack) : void{ - $this->critical($message); - foreach($stack as $line){ + $this->synchronized(function() use ($e, $trace) : void{ + $this->critical(self::printExceptionMessage($e)); + foreach(Utils::printableTrace($trace) as $line){ $this->debug($line, true); } + for($prev = $e->getPrevious(); $prev !== null; $prev = $prev->getPrevious()){ + $this->debug("Previous: " . self::printExceptionMessage($prev), true); + foreach(Utils::printableTrace($prev->getTrace()) as $line){ + $this->debug(" " . $line, true); + } + } }); $this->syncFlushBuffer();