MainLogger: Log exceptions as a single block message

This commit is contained in:
Dylan K. Taylor 2021-10-07 20:40:20 +01:00
parent a555f21b18
commit dd0aaf59b5
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D

View File

@ -140,18 +140,20 @@ class MainLogger extends \AttachableThreadedLogger implements \BufferedLogger{
$trace = $e->getTrace();
}
$this->buffer(function() use ($e, $trace) : void{
$this->critical(self::printExceptionMessage($e));
foreach(Utils::printableTrace($trace) as $line){
$this->critical($line);
$lines = [self::printExceptionMessage($e)];
$lines[] = "--- Stack trace ---";
foreach(Utils::printableTrace($trace) as $line){
$lines[] = " " . $line;
}
for($prev = $e->getPrevious(); $prev !== null; $prev = $prev->getPrevious()){
$lines[] = "--- Previous ---";
$lines[] = self::printExceptionMessage($prev);
foreach(Utils::printableTrace($prev->getTrace()) as $line){
$lines[] = " " . $line;
}
for($prev = $e->getPrevious(); $prev !== null; $prev = $prev->getPrevious()){
$this->critical("Previous: " . self::printExceptionMessage($prev));
foreach(Utils::printableTrace($prev->getTrace()) as $line){
$this->critical(" " . $line);
}
}
});
}
$lines[] = "--- End of exception information ---";
$this->critical(implode("\n", $lines));
$this->syncFlushBuffer();
}