MainLogger: extract a printErrorMessage() function from logException()

This commit is contained in:
Dylan K. Taylor 2020-01-09 20:51:13 +00:00
parent fab81d28bc
commit c4580dd56d

View File

@ -204,12 +204,22 @@ class MainLogger extends \AttachableThreadedLogger{
if($trace === null){
$trace = $e->getTrace();
}
$errstr = $e->getMessage();
$errfile = $e->getFile();
$errno = $e->getCode();
$errline = $e->getLine();
$errorConversion = [
$message = self::printExceptionMessage($e);
$stack = Utils::printableTrace($trace);
$this->synchronized(function() use ($message, $stack) : void{
$this->critical($message);
foreach($stack as $line){
$this->debug($line, true);
}
});
$this->syncFlushBuffer();
}
private static function printExceptionMessage(\Throwable $e) : string{
static $errorConversion = [
0 => "EXCEPTION",
E_ERROR => "E_ERROR",
E_WARNING => "E_WARNING",
@ -228,21 +238,15 @@ class MainLogger extends \AttachableThreadedLogger{
E_USER_DEPRECATED => "E_USER_DEPRECATED"
];
$errstr = preg_replace('/\s+/', ' ', trim($e->getMessage()));
$errno = $e->getCode();
$errno = $errorConversion[$errno] ?? $errno;
$errstr = preg_replace('/\s+/', ' ', trim($errstr));
$errfile = Utils::cleanPath($errfile);
$message = get_class($e) . ": \"$errstr\" ($errno) in \"$errfile\" at line $errline";
$stack = Utils::printableTrace($trace);
$errfile = Utils::cleanPath($e->getFile());
$errline = $e->getLine();
$this->synchronized(function() use ($message, $stack) : void{
$this->critical($message);
foreach($stack as $line){
$this->debug($line, true);
}
});
$this->syncFlushBuffer();
return get_class($e) . ": \"$errstr\" ($errno) in \"$errfile\" at line $errline";
}
public function log($level, $message){